2009-07-27 13 views
5

Attualmente sto facendo la stessa richiesta Ajax utilizzando jQuery ogni 2 secondi. Per qualche ragione, su IE8 funziona solo la prima volta. Ogni richiesta successiva sembra automaticamente passare alla funzione onSuccess, con lo stesso risultato della prima richiesta.Jquery ajax, quando periodicamente chiamato, non funziona su IE8

Lo stesso codice funziona perfettamente su FF3 e Chrome.

Qualcuno è a conoscenza di quel bug e di come incidere intorno ad esso? O sto semplicemente facendo qualcosa di sbagliato?

+0

Puoi pubblicare un codice per favore? È difficile per noi vedere un problema senza di esso. – Damien

risposta

12

IE ha una funzionalità di memorizzazione nella cache ... è possibile che abbia appena memorizzato nella cache la richiesta. Assicurarsi che si aggiunge qualcosa di simile a un numero casuale per la stringa di ricerca, in questo modo:

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

Ciò ha funzionato perfettamente. Grazie per la risposta veloce Jason. – Zwik

+0

se questo ti ha aiutato, plz accetta come risposta! thx – Jason

+0

sry ^^, (Sono nuovo qui) – Zwik

6

Solo così si sa $.ajax ha un attributo cache che, se impostato su false fa esattamente quello che Jason sta facendo, cioè, comprende una parametro casuale che significa che nessuna richiesta viene memorizzata nella cache. È un po 'più elegante di farlo da solo

+1

Oh! davvero bello sapere hehe. Grazie brad :) – Zwik

0

Ho appena incontrato la stessa cosa e l'ho risolto impostando la proprietà "cache" della tua funzione ajax su false.

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

questo potrebbe essere un doppio, non ho notato la risposta di Brad :) comunque qui è un codice di esempio. – Nielsm

Problemi correlati