Maison >interface Web >js tutoriel >Résumé des méthodes pour empêcher jQuery ajax Load d'utiliser cache_jquery

Résumé des méthodes pour empêcher jQuery ajax Load d'utiliser cache_jquery

WBOY
WBOYoriginal
2016-05-16 16:58:391020parcourir

1. Utilisation
La fonction de chargement de jquery est un appel qui demande un autre fichier et le charge dans le DOM actuel. Le format complet de la méthode de chargement est : load(. url, [data], [callback] ) (notez que s'il n'y a pas de paramètres, c'est une requête GET, et s'il y a des paramètres, c'est une méthode POST).

* url : fait référence à l'adresse du fichier à importer.
* data : paramètre facultatif ; car Load peut non seulement importer des fichiers html statiques, mais aussi des scripts dynamiques, tels que des fichiers PHP, donc lorsque nous voulons importer des fichiers dynamiques, nous pouvons importer les paramètres passés. sont placés ici.
* rappel : paramètre facultatif ; fait référence à une autre fonction qui est exécutée après avoir appelé la méthode de chargement et obtenu une réponse du serveur.

La mise en cache accélère dans une certaine mesure le chargement des pages, mais elle nous pose souvent des problèmes. Dans mon article précédent, j'ai brièvement présenté l'utilisation de la méthode Load dans jQuery. Dans l'application réelle, nous pouvons rencontrer des problèmes de cache du navigateur. Par exemple, j'ai rencontré ce problème dans IE7.

JQuery Load exemple de code :

Copier le code Le code est le suivant :

$(document).ready(function(){
$("#labels").load("/blog/categories/labels.html");
//Quand la page est chargé, dans l'ID Insérez le contenu de labels.html dans l'élément DOM de #labels
});

Après avoir mis à jour labels.html, la méthode de chargement dans IE7 utilise toujours l'ancienne labels.html, cela ne fonctionne pas même si j'appuie sur la touche d'actualisation. Heureusement, jQuery fournit une méthode pour empêcher ajax d'utiliser le cache. Ajoutez l'instruction suivante au fichier javascript principal pour résoudre le problème.
Copier le code Le code est le suivant :

$.ajaxSetup ({
cache : false / /Fermez le cache correspondant AJAX
});

De plus, je présenterai plusieurs méthodes pour résoudre le problème du cache. Remarque : je n'ai pas testé les problèmes de chargement de jQuery, ces méthodes sont uniquement à titre de référence !

1. Modifiez le nom du fichier, par exemple en changeant labels.html en labels_new.html, mais c'est une évidence et généralement personne ne le fait.

2. Ajoutez une heure spécifique après labels.html, telle que labels.html?20081116. Dans le travail réel, après avoir mis à jour le fichier css/javascript, j'utilise toujours cette méthode pour empêcher la mise en cache du fichier.

3. Ajoutez la déclaration suivante en haut du fichier labels.html :


4. La fonction de chargement peut non seulement appeler du HTML, mais aussi appeler des scripts, tels que labels.php. Vous pouvez utiliser la fonction d'en-tête dans le fichier php :

Copier le code Le code est le suivant :
header("Cache-Control : no-cache, must-revalidate") ;
?>


Deux autres solutions :
Ajouter une valeur de paramètre d'heure à l'heure actuelle dans le chemin de la requête ou ajouter un masqué dans le formulaire Field définit la valeur du champ sur l'heure actuelle.
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