TLDR IE cache toujours mes demandes même avec Math.random () inclus dans l'URL.
J'ai donc ajouté des mathématiques aléatoires à la fin de mon URL:
var MYKMLURL = 'http://' + host + 'data/pattern?key='+ Math.random();
J'ai également ajouté des mathématiques aléatoires sur mon paramètre de fonction:
window.setTimeout(RefreshPatternData, 1000, MYKMLLAYER); function RefreshPatternData(layer) { layer.loaded = false; layer.setVisibility(true); layer.refresh({ force: true, params: { 'key': Math.random()} }); setTimeout(RefreshPatternData, 30000, MYKMLLAYER); }
La demande apparaît donc comme http: // host / data / pattern? Key = 35678652545 etc.
Cela change chaque fois que la demande est faite.
Il fonctionne dans Firefox et Chrome & Safari, etc. Mais IE8 continue de mettre en cache les données et de ne pas mettre à jour ma couche.
Des idées sur la raison pour laquelle cela pourrait se produire?
J'ai donc ajouté:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="0">
Toujours en cache les données. Des idées supplémentaires?
Vous pouvez essayer les réponses à cette publication:
Empêcher la mise en cache IE
J'ai rencontré un problème similaire avec IE et la mise en cache des requêtes AJAX. (Pourquoi, dieux, pourquoi cacheriez-vous une requête AJAX ?) A travaillé bien dans tout le reste, mais IE a exigé la coercition via les en-têtes HTTP pour ne pas mettre en cache la requête AJAX.
J'ai oublié depuis longtemps l'URL, mais voyez: http://greenash.net.au/thoughts/2006/03/an-ie-ajax-gotcha-page-caching/
En outre, les en-têtes HTTP qui l'ont fait pour moi étaient:
Pragma: no-cache Cache-Control: no-store, no-cache, must-revalidate Cache-Control: post-check=0, pre-check=0
… ce que j'ai honnêtement glané sur un site Web quelque part.