Maison  >  Article  >  interface Web  >  Combien existe-t-il de façons d’implémenter le chargement paresseux en js ? Introduction à six méthodes de chargement paresseux en js

Combien existe-t-il de façons d’implémenter le chargement paresseux en js ? Introduction à six méthodes de chargement paresseux en js

不言
不言original
2018-08-22 11:37:012541parcourir

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 3f1c4e4b6b16bbbd69b2ee476dc4f83a.
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 3f1c4e4b6b16bbbd69b2ee476dc4f83a 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 3f1c4e4b6b16bbbd69b2ee476dc4f83a soit placé dans l'élément 93f0f5c25f18dab9d176bd4f6de5d30e, le script inclus retardera l'exécution jusqu'à ce que le navigateur rencontre la balise 73a6ac4ed44ffec12cee46588e518a5e.

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 3f1c4e4b6b16bbbd69b2ee476dc4f83a 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!

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