Maison > interface Web > js tutoriel > 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

不言
Libérer: 2018-08-22 11:37:01
original
2574 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

4. Méthode jQuery getScript()

$.getScript("outer.js",function(){  
//回调函数,成功获取文件后执行的函数
    console.log("脚本加载完成")
});
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal