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!