Maison >interface Web >js tutoriel >Comment empêcher la mise en cache du navigateur des résultats des appels AJAX ?

Comment empêcher la mise en cache du navigateur des résultats des appels AJAX ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 16:50:03365parcourir

How to Prevent Browser Caching of AJAX Call Results?

Empêcher la mise en cache du navigateur des résultats des appels AJAX

La mise en cache des résultats des appels AJAX peut poser des problèmes lorsque vous travaillez avec du contenu dynamique. Pour surmonter ce problème, nous explorons des méthodes alternatives pour empêcher la mise en cache du navigateur.

Utilisation de l'option de cache de jQuery

jQuery fournit une solution simple pour désactiver la mise en cache pour toutes les futures requêtes AJAX. . En utilisant la fonction $.ajaxSetup, vous pouvez spécifier l'option de cache sur false, empêchant ainsi la mise en cache de tout appel AJAX ultérieur :

$.ajaxSetup({ cache: false });

Alternative aux chaînes de chaîne de requête aléatoires

Bien que l'ajout d'une chaîne unique à QueryString puisse empêcher la mise en cache, ce n'est peut-être pas l'approche la plus souhaitable. Au lieu de cela, la méthode d'horodatage de jQuery peut générer un horodatage unique à ajouter à l'URL de la requête, garantissant ainsi que le résultat n'est pas mis en cache :

$.ajax({
    url: 'some.php',
    method: 'GET',
    data: { timestamp: $.now() }
});

Création d'en-têtes personnalisés

Un autre L'option consiste à définir des en-têtes personnalisés pour la demande afin d'empêcher la mise en cache. Par exemple, l'utilisation des en-têtes suivants demandera au navigateur de ne pas mettre la réponse en cache :

cache-control: no-cache, no-store
pragma: no-cache

Codes d'état HTTP

Des codes d'état HTTP spécifiques peuvent également être utilisés pour indiquent qu'une ressource ne doit pas être mise en cache. Définir l'en-tête Cache-Control sur max-age=0 ou no-store empêchera la mise en cache.

Partage de ressources cross-origine (CORS)

Lorsque les requêtes AJAX sont effectué sur plusieurs domaines, CORS peut interférer avec le comportement de la mise en cache. Si vous rencontrez des problèmes de mise en cache dans les requêtes multi-origines, envisagez d'utiliser les en-têtes Cache-Control mentionnés ci-dessus ou d'explorer les paramètres liés à CORS pour votre serveur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn