2009-07-27 7 views
5

Je fais actuellement la même requête ajax en utilisant jQuery toutes les 2sec. Pour une raison quelconque, sur IE8, il ne fonctionne que la première fois. Chaque requête suivante semble automatiquement aller à la fonction onSuccess, avec le même résultat que la première requête.Jquery ajax, quand périodiquement appelé, ne fonctionne pas sur IE8

Le même code fonctionne parfaitement sur FF3 et Chrome.

Quelqu'un est-il au courant de ce bogue et comment le contourner? Ou est-ce que je fais simplement quelque chose de mal?

+0

Pouvez-vous poster un code s'il vous plaît? Il est difficile pour nous de voir un problème sans cela. – Damien

Répondre

12

IE a une fonction de mise en cache ... il est possible qu'il ait juste mis en cache votre requête. Assurez-vous que vous ajoutez quelque chose comme un nombre aléatoire à votre chaîne de requête, comme suit:

var url = "/yoururl.html"; 
url = url + "&random=" + Math.random(); 
+1

Cela a fonctionné parfaitement. Merci pour votre réponse rapide Jason. – Zwik

+0

si cela vous a aidé, plz accepter comme réponse! thx – Jason

+0

sry ^^, (je suis nouveau ici) – Zwik

6

si vous le savez $.ajax a un attribut cache que, lorsque la valeur false fait exactement ce que Jason fait, à savoir, comprend un paramètre aléatoire qui signifie qu'aucune requête n'est mise en cache. C'est un peu plus élégant que de le faire vous-même

+1

Oh! vraiment bon de savoir hehe. Merci brad :) – Zwik

0

Je viens de rencontrer la même chose et je l'ai corrigée en mettant la propriété "cache" de votre appel de fonction ajax à false.

 $.ajax({ 
      url: "/ws/inventory/checkavailability/", 
      async: false, 
      dataType: 'json', 
      cache:false, 
      success: function (data) { 
       //so something interesting 
      }, error: function (error) { 
       //display error? 
      } 
     }); 
+0

cela pourrait être un double, je n'ai pas remarqué la réponse de brad :) de toute façon, voici un exemple de code. – Nielsm

Questions connexes