Maison > interface Web > js tutoriel > jQuery .getscript () refactor pour empêcher la mise en cache

jQuery .getscript () refactor pour empêcher la mise en cache

Jennifer Aniston
Libérer: 2025-02-28 00:35:12
original
763 Les gens l'ont consulté

jQuery .getscript () refactor pour empêcher la mise en cache

Une fonctionnalité de la fonction jQuery .getscript () est qu'il comprend un ID unique (horodatage ou tel) à chaque appel de script ajax . Cela me convenait d'un problème lorsque j'avais exécuté un Settimeout pour obtenir un script, mais il rechargeait le même script… pas bon. J'ai donc décidé de refacter légèrement .getscrip () de jQuery pour empêcher la mise en cache et donc il ne charge le script qu'une seule fois.

la nouvelle fonction getScript

<span>//getScript refactor to prevent caching
</span><span>(function () {
</span>    $<span>.getScript = function(url<span>, callback, cache</span>)
</span>    <span>{
</span>        $<span>.ajax({
</span>                <span>type: "GET",
</span>                <span>url: url,
</span>                <span>success: callback,
</span>                <span>dataType: "script",
</span>                <span>cache: cache
</span>        <span>});
</span>    <span>};
</span><span>})();</span>
Copier après la connexion
Pour prouver que cela fonctionne, j'ai testé dans le temps de chargement des demandes HTTP et à regarder les cercles que vous pouvez voir que le script charge maintenant la version mise en cache en environ 7 ms. jQuery .getscript () refactor pour empêcher la mise en cache Voyons de près la fonction .getscript () originale et comment nous pouvons appeler la nouvelle fonction avec le paramètre supplémentaire.
<span>//normal no cached version
</span>$<span>.getScript('js/script.js', function()
</span><span>{
</span>    <span>//do something after script loaded
</span><span>});</span>
Copier après la connexion

comment appeler la nouvelle fonction .getscript ()

Incluez simplement vrai à la fin si vous voulez qu'il soit mis en cache.
<span>//cache = true
</span>$<span>.getScript('js/script.js', function()
</span><span>{
</span>    <span>//do something after script loaded
</span><span>}, true);</span>
Copier après la connexion
OU
<span>// turn on cache
</span>$<span>.ajaxSetup({ cache: true });
</span>$<span>.getScript(url, callback);
</span><span>// turn cache back off
</span>$<span>.ajaxSetup({ cache: false });</span>
Copier après la connexion

Les questions fréquemment posées (FAQ) sur JQuery GetScript Refactor et empêchant la mise en cache

Qu'est-ce que jQuery GetScript et comment cela fonctionne-t-il?

jQuery GetScript est une puissante méthode AJAX qui charge et exécute un fichier JavaScript à l'aide de la demande HTTP GET. C’est une méthode de sténographie pour $ .ajax (). La méthode GetScript récupère le script du serveur et l'exécute. C'est un moyen pratique de charger les scripts à la demande, ce qui peut aider à améliorer les performances de vos pages Web.

Comment puis-je empêcher la mise en cache avec jQuery GetScript?

Par défaut, les navigateurs cache des scripts pour améliorer les performances. Cependant, il y a des moments où vous voudrez peut-être empêcher la mise en cache, comme pendant le développement lorsque vous apportez des modifications fréquentes à vos scripts. Pour éviter la mise en cache avec jQuery GetScript, vous pouvez utiliser la méthode $ .ajaxSetUp () pour définir Cache sur False avant d'appeler GetScript.

Quels sont les avantages de la refactorisation de JQuery GetScript?

Refactoring jQuery GetScript peut rendre votre code plus propre, plus efficace et plus facile à comprendre. Il peut également vous aider à identifier et à éliminer toute redondance ou inefficacité dans votre code. Le refactorisation peut également rendre votre code plus modulaire, ce qui facilite le test et le maintien.

Comment puis-je refactor jQuery GetScript?

Refactoring jQuery GetScript implique la décomposition du code en fonctions plus petites et plus gérables. Cela peut rendre le code plus facile à comprendre et à maintenir. Vous pouvez également utiliser l'objet $. D'autres méthodes AJAX, telles que $ .ajax (), $ .get () et $ .post (), peuvent être utilisées pour envoyer et récupérer des données à partir d'un serveur, mais ils n'exécutent pas automatiquement le script renvoyé comme GetScript le fait.

Puis-je utiliser jQuery GetScript avec d'autres bibliothèques JavaScript?

Oui, vous pouvez utiliser jQuery GetScript avec d'autres bibliothèques JavaScript. Cependant, vous devez vous assurer qu'il n'y a pas de conflits entre JQuery et les autres bibliothèques. Vous pouvez utiliser la méthode jQuery.NoConflict () pour éviter les conflits.

Comment puis-je gérer les erreurs avec jQuery GetScript?

Vous pouvez gérer les erreurs avec jQuery GetScript en utilisant la méthode .fail (). Cette méthode est appelée lorsque la demande échoue. Vous pouvez l'utiliser pour afficher un message d'erreur ou effectuer une autre action lorsque le script ne se charge pas.

Puis-je utiliser jQuery GetScript pour charger des scripts à partir d'autres domaines?

Oui, vous pouvez utiliser jQuery GetScript pour charger des scripts à partir d'autres domaines. Cependant, en raison de la politique d'origine homosexuelle, le script doit être conçu pour prendre en charge les demandes de domaine croisé.

Comment puis-je améliorer les performances de jQuery GetScript?

Vous pouvez améliorer les performances de JQuery GetScript en minimisant le nombre de scripts que vous chargez, combinant plusieurs scripts en un seul, et en utilisant un réseau de livraison de contenu (CDN) pour servir vos scripts. Vous pouvez également utiliser le paramètre de cache pour contrôler si les scripts sont mis en cache.

Puis-je utiliser jQuery GetScript dans une boucle?

Oui, vous pouvez utiliser jQuery GetScript dans une boucle. Cependant, comme GetScript est asynchrone, les scripts peuvent ne pas se charger dans l'ordre que vous attendez. Pour vous assurer que les scripts se chargent dans le bon ordre, vous pouvez utiliser la méthode .dOne () pour enchaîner vos appels GetScript.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal