Les chargeurs JavaScript sont des outils très puissants et utiles dans le développement Web. Plusieurs chargeurs populaires, tels que curljs, LABjs et RequireJS, sont largement utilisés. Ils sont puissants, mais certaines situations peuvent avoir des solutions plus simples.
Si vous utilisez jQuery, il existe une méthode intégrée pour charger des scripts. Vous pouvez utiliser cette méthode si vous souhaitez charger paresseux des plugins ou tout autre type de script. Voici comment l'utiliser.
Méthode d'implémentation
jQuery a une méthode getScript intégrée pour charger un script. Il existe plusieurs façons de traiter les résultats renvoyés. L'utilisation la plus basique de jQuery.getScript ressemble à ceci :
jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) {
/*
Une fois le script chargé et exécuté, vous pouvez faire un peu de traitement
*/
});
la méthode getScript renvoie un objet jqXHR, elle peut donc être utilisée comme ceci :
jQuery.getScript("/path/to/myscript.js")
.done(function() {
/* Traitement après une exécution réussie*/
})
.fail(function() {
/* Traitement après un échec d'exécution*/
}) ;
Le scénario le plus courant pour utiliser jQuery.getScript est de charger paresseux un plugin et de l'appeler après le chargement :
jQuery.getScript("jquery.cookie.js")
.done(function() {
jQuery.cookie(" cookie_name", "value", { expires : 7 });
});
Si vous devez effectuer des tâches plus avancées, comme charger plusieurs scripts et différents types de fichiers (fichiers texte, images, fichiers CSS, etc.), je vous recommande de passer à un chargeur JavaScript plus puissant. getScript est parfait si vous souhaitez simplement charger le plugin paresseusement, plutôt que simplement à chaque chargement de page !
Problèmes de mise en cache Il convient de noter que lors de l'utilisation de jQuery.getScript, un horodatage sera automatiquement ajouté à la fin de l'URL du script pour empêcher le script d'être mis en cache. Vous devez donc configurer le script de cache pour toutes les requêtes :
jQuery.ajaxSetup({
cache: true
});
Si vous ne souhaitez pas écraser tout le cache avec votre requête AJAX, il est préférable de utilisez la méthode jQuery.ajax et mettez dataType Set dans le script, par exemple :
jQuery.ajax({
url : "jquery.cookie.js",
dataType : "script",
cache : true
}).done(function() {
jQuery.cookie("cookie_name" , "value", { expires: 7 });
});
Vous devez prêter une attention particulière aux problèmes de mise en cache lors du chargement des scripts. !