Le contenu de cet article porte sur le nombre de façons d'implémenter le chargement paresseux en js ? L'introduction aux six méthodes de chargement différé de js a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'elle vous sera utile.
Le chargement différé de JS signifie attendre que la page se charge avant de charger le fichier JavaScript.
Le chargement paresseux JS permet d'améliorer la vitesse de chargement des pages.
Les méthodes générales sont les suivantes :
attribut defer
attribut async
Création dynamique de la méthode DOM
Utilisez la méthode getScript de jQuery
Utilisez la méthode de retard setTimeout
Let JS Enfin, chargez
1. attribut defer
HTML 4.01 définit l'attribut defer pour la balise <script>
.
Objectif : Indique que le script n'affectera pas la structure de la page une fois exécuté. En d’autres termes, le script sera retardé jusqu’à ce que la page entière ait été analysée avant son exécution.
Définir l'attribut <script>
dans l'élément defer
équivaut à dire au navigateur de télécharger immédiatement mais de retarder l'exécution.
<!DOCTYPE html> <html> <head> <script src="test1.js" defer="defer"></script> <script src="test2.js" defer="defer"></script> </head> <body> <!-- 这里放内容 --> </body> </html>
Remarque : Bien que l'élément <script>
soit placé dans l'élément <head>
, le script inclus retardera l'exécution jusqu'à ce que le navigateur rencontre la balise </html>
.
La spécification HTML5 exige que les scripts soient exécutés dans l'ordre dans lequel ils apparaissent. En réalité, les scripts différés ne s’exécutent pas forcément dans l’ordre.
L'attribut defer s'applique uniquement aux fichiers de script externes. Les implémentations prenant en charge HTML5 ignorent l'attribut defer défini par les scripts intégrés.
2. Attribut asynchrone
HTML5 définit l'attribut <script>
pour la balise async
. Semblables à l'attribut defer
, ils sont utilisés pour modifier le comportement des scripts de traitement. De même, ne fonctionne qu'avec des fichiers de script externes.
Objectif : Ne pas laisser la page attendre que le script soit téléchargé et exécuté, afin de charger d'autres contenus de la page de manière asynchrone.
Les scripts asynchrones doivent être exécutés avant l'événement de chargement de la page.
Il n'y a aucune garantie que les scripts seront exécutés dans l'ordre.
<!DOCTYPE html> <html> <head> <script src="test1.js" async></script> <script src="test2.js" async></script> </head> <body> <!-- 这里放内容 --> </body> </html>
Async, comme defer, ne bloquera pas le téléchargement d'autres ressources, cela n'affectera donc pas le chargement de la page.
Inconvénients : Impossible de contrôler l'ordre de chargement
3. Créer dynamiquement une méthode DOM
//这些代码应被放置在</body>标签前(接近HTML文件的底部) <script type="text/javascript"> function downloadJSAtOnload() { var element = document.createElement("script"); element.src = "defer.js"; document.body.appendChild(element); } if(window.addEventListener) window.addEventListener("load",downloadJSAtOnload,false); else if(window.attachEvent) window.attachEvent("onload",downloadJAAtOnload); else window.onload = downloadJSAtload;</script>
4. Méthode jQuery getScript()
$.getScript("outer.js",function(){ //回调函数,成功获取文件后执行的函数 console.log("脚本加载完成") });
5. Utilisez la méthode de retard setTimeout
6. Laissez JS se charger en dernier
Recommandations associées :
Chargement paresseux de JavaScript
Explication détaillée du chargement paresseux des images en Javascript
Bibliothèque de chargement paresseux d'images JavaScript Astuces Echo.js_javascript
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!