283 votes

Empêcher la mise en cache d’appel AJAX

Il ressemble à cela si je charge dynamique contenu à l’aide , le résultat est mis en cache dans le navigateur. Ajout d’une chaîne de caractères aléatoire dans QueryString semblent résoudre ce problème (j’utilise ), mais cela se sent comme un hack.

Y a-t-il une autre manière d’y parvenir ? Ou, si la chaîne unique est le seul moyen d’y parvenir, des suggestions autres que `` ?

538voto

Peter J Points 23798

Ce qui suit empêchera toutes les futures demandes d’AJAX de mise en cache, peu importe quelle méthode jQuery utilisation ($.get, $.ajax, etc..)

351voto

Jonathan Moffatt Points 4322

JQuery $.get() met en cache les résultats. Au lieu de

vous devez utiliser $.ajax, qui vous permettra de désactiver la mise en cache :

249voto

Mark Bell Points 11287

J’utilise `` , qui permettra d’éviter collisions sauf si vous avez des demandes multiples qui passe au sein de la milliseconde même.

24voto

miceuz Points 1429

une autre façon est de ne fournir aucun en-tête cache du côté serveur dans le code qui génère la réponse à l’appel ajax :

14voto

Greg Points 132247

Personnellement, je pense que la méthode de chaîne de requête est plus fiable que d’essayer de définir des en-têtes sur le serveur - il n’y a aucune garantie qu’un proxy ou un navigateur ne sera pas juste mettre en cache quand même (certains navigateurs sont pires que d’autres - ne nommer aucun nom).

J’utilise habituellement `` mais je ne vois rien de mal avec l’aide de la date (vous ne devrait pas faire requêtes AJAX assez rapidement pour obtenir la même valeur deux fois).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X