Problème avec IE et setInterval () pas rafraîchissante / mise à jour
-
26-09-2019 - |
Question
J'utilise JavaScript / JQuery pour faire une mise à jour automatique de la page avec une valeur à partir d'une base de données, mais il ne semble pas mise à jour dans Internet Explorer. Il fonctionne très bien dans FireFox et Chrome. Quelqu'un peut-il expliquer ce qui ne va pas? On dirait que IE est juste affiche une version en cache de la page. Comment puis-je empêcher cela? Merci.
function updateComm() {
var url="commandSys.php";
jQuery("#theElement").load(url);
}
setInterval("updateComm()", 1000);
La solution
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);
Vous pouvez simplement ajouter manuellement un +new Date
à url
il ajoute une chaîne de requête pour empêcher la mise en cache.
En variante, la mise en cache de désactivation sur le côté serveur.
Autres conseils
Votre page php est mise en mémoire cache. N'a rien à voir avec l'intervalle. Définissez les en-têtes de mise en cache à droite sur la page.