2009-07-13 8 views
2

je le code jquery suivant:jquery GET demande ne fonctionne pas dans IE


function update(){ 
    $.get("getlatest.php", { 
     id: $.cookie('last_post_id') 
    }, function(response){ 


     $('#board_posts').prepend(response); 
     $('.incoming_post').slideDown("slow").effect("highlight", {}, 3000); 
     $('.incoming_post').toggleClass("incoming_post").addClass("old_post"); 



    }, "html"); 
} 

La fonction vérifie s'il y a des nouveaux messages au babillard, et si oui, de les charger. Pour une raison quelconque, les nouvelles données ne se chargent jamais dans IE 7, mais se chargent correctement dans FF et Chrome. En outre, lorsque j'actualise la page, les données n'apparaissent pas - seulement lorsque le cache est effacé.

Une aide sur ce problème?

Répondre

2

Utilisez la méthode jQuery.ajaxSetup pour définir l'option cache sur false. Vous pouvez également utiliser la méthode $ .ajax pour faire la même chose.

6

Internet Explorer met en cache les demandes. Voir le cache flag for jQuery Ajax requests. Il ajoutera un paramètre de chaîne de requête aléatoire à l'URL (en fonction de l'heure actuelle) pour le rendre unique et inaccessible. Vous pouvez le faire vous-même si vous le souhaitez: 'request.php?_=' + (+new Date())

+1

+1. Tout le monde ne se rend pas vraiment compte de ce comportement étrange d'IE et finit par blâmer leur propre code. Mais Firefox fonctionne comme prévu. La bonne chose est, toujours envoyer un paramètre aléatoire en utilisant Ajax. La mise en cache intentionnelle est une exception. – simplyharsh

Questions connexes