2010-08-06 8 views
19

J'utilise JavaScript/Jquery pour faire une mise à jour automatique de page avec une valeur provenant d'une base de données, bien qu'elle ne semble pas mettre à jour dans Internet Explorer. Cela fonctionne très bien dans FireFox & Chrome. Quelqu'un peut-il expliquer ce qui ne va pas? Il semble que IE affiche simplement une version en cache de la page. Comment puis-je empêcher cela? Merci.Problème avec IE et setInterval() non actualisation/mise à jour

function updateComm() { 
var url="commandSys.php"; 
jQuery("#theElement").load(url); 
} 

setInterval("updateComm()", 1000); 

Répondre

30

Essayez de désactiver le cache avec ajaxSetup

$.ajaxSetup ({ 
    // Disable caching of AJAX responses */ 
    cache: false 
}); 

function updateComm() { 
var url="commandSys.php"; 
jQuery("#theElement").load(url); 
} 

setInterval(updateComm, 1000); 

Alternativement, vous pouvez simplement ajouter manuellement un +new Date-url il ajoute une chaîne de requête pour empêcher la mise en cache.

Vous pouvez également désactiver la mise en cache sur le serveur.

+1

Merci beaucoup. J'ai utilisé la solution "ajaxSetup". :) –

+0

yup, a travaillé pour moi aussi, juste copié et collé la première partie de ce code dans mon fichier. –

+0

génial, a eu le même problème avec IE. La chose amusante est, quand ouvrir l'outil de développement alors cela a fonctionné. Merci d'avoir partagé. –

0

Votre page php est mise en cache. N'a rien à voir avec l'intervalle. Définissez les en-têtes de mise en cache appropriés sur la page.