IE8 cache toujours mes demandes même avec mathrandom

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.