Maison >interface Web >js tutoriel >$ .getscript mutile scripts
Cette méthode améliorée $.getScript
charge efficacement plusieurs fichiers JavaScript et exécute une fonction de rappel uniquement après que tous les scripts se soient chargés avec succès. Cela évite les complexités des rappels imbriqués ("Hellback Hell") souvent rencontrés lors du chargement de plusieurs scripts séquentiellement.
La fonction d'origine unique Script $.getScript
est illustrée ci-dessous à la comparaison:
$.getScript('script1.js', function(data, textStatus) { // Code to execute after script1.js loads });
La version améliorée gère un tableau d'URL de script:
/* Enhanced $.getScript to handle multiple scripts */ var getScript = jQuery.getScript; jQuery.getScript = function(resources, callback) { let length = resources.length, handler = function() { counter++; }, deferreds = [], counter = 0, idx = 0; for (; idx < length; idx++) { deferreds.push(getScript(resources[idx], handler)); } jQuery.when.apply(null, deferreds).then(function() { callback && callback(); }); }; // Example usage: $.getScript(['script1.js', 'script2.js', 'script3.js'], function() { // Code to execute after all scripts load }); // Alternative using a separate array: var scripts = ['script1.js', 'script2.js', 'script3.js']; $.getScript(scripts, function(data, textStatus) { // Code to execute after all scripts load });
Une approche alternative, utile lorsqu'un script nécessite un rappel, est démontré ici:
$.get("js/ext/flowplayer-3.2.8.min.js") .pipe($.get("js/eviflowplayer.js")) .pipe($.get("js/evi.flowplayer.js", {}, function() { W.EVI.FLOWPLAYER.init(elem.attr('id')); }));
Questions fréquemment posées (FAQ):
Cette section aborde les questions courantes sur $.getScript
et le chargement de plusieurs scripts. La section FAQ d'origine a été réorganisée et réécrite pour plus de clarté et de concision.
Qu'est-ce que $.getScript
? $.getScript
est une fonction jQuery qui charge et exécute un fichier javascript de manière asynchrone via une demande de GET HTTP. C'est une version simplifiée de $.ajax()
.
Comment charger plusieurs scripts? Le code amélioré ci-dessus fournit une solution robuste. Le chaînage $.get
(comme dans l'exemple alternatif) convient aux situations avec une exigence de rappel spécifique pour un seul script.
Avantages de $.getScript
? Améliore les performances de charge de page en chargeant des scripts à la demande, améliore l'organisation du code et favorise la réutilisabilité du code.
Gestion des erreurs? Bien qu'il ne soit pas explicitement affiché dans le code fourni, la gestion des erreurs peut être implémentée en utilisant $.ajax().fail()
.
Le partage des ressources d'origine croisée (CORS)? $.getScript
prend en charge CORS, mais le succès dépend de la configuration CORS du serveur.
Chargement synchrone? $.getScript
est intrinsèquement asynchrone. Pour le chargement synchrone, utilisez $.ajax({ async: false })
, mais soyez conscient des implications potentielles de performance.
Chargement des fichiers non javascript? $.getScript
est spécifiquement pour les fichiers javascript.
scripts avec dépendances? L'ordre d'exécution n'est pas garanti avec le chargement asynchrone. La solution fournie garantit que tous les scripts se chargent avant l'exécution du rappel, résolvant les problèmes de dépendance.
Chargement des scripts dans une boucle? Bien que possible, la nature asynchrone nécessite un examen attentif de l'ordre d'exécution. Le $.getScript
amélioré le gère efficacement.
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!