Maison interface Web js tutoriel Analyse du chargement asynchrone du navigateur en JavaScript

Analyse du chargement asynchrone du navigateur en JavaScript

Aug 06, 2018 pm 05:04 PM
javascript 异步加载

Le contenu de cet article concerne l'analyse du chargement asynchrone du navigateur en JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Lorsque nous avons appris js pour la première fois, nous aurions dû savoir que js est monothread et se charge de manière synchrone, ce qui bloquera la ligne de chargement du html et du css (car js peut modifier le html et le css)

Inconvénients du chargement synchrone js : Il n'est pas nécessaire de bloquer le document dans la méthode de l'outil de chargement. Un chargement excessif de js affectera l'efficacité de la page. Une fois que la vitesse du réseau n'est pas bonne, l'ensemble du site Web. attendra que js se charge sans chargement ultérieur et autres travaux.

Certains outils et méthodes en js doivent être chargés à la demande. Avez-vous besoin de les charger ? ? ? À ce stade, nous devons charger js de manière asynchrone.

Trois options pour le chargement asynchrone JavaScript.

1. Defer est chargé de manière asynchrone, mais il ne sera exécuté que lorsque tous les documents DOM seront analysés. Seul IE peut être utilisé, ou vous pouvez écrire tout le code en interne

 <script type = "text/javascript" src = "tools.js"  defer = "defer"></script>
Copier après la connexion
<script defer = "defer">
console.log("a");
</script>
Copier après la connexion

2. chargement asynchrone asynchrone, exécuté après le chargement, async ne peut charger que des scripts externes et ne peut pas écrire de js dans les balises de script

 <script type = "text/javascript" aysnc = "aysnc"></script>
Copier après la connexion

Les deux méthodes ci-dessus ne bloqueront pas la page une fois exécutées

Afin de résoudre le problème de compatibilité du navigateur ? ? Si les deux méthodes 1, 2 et 2 sont chargées en même temps, cela provoquera un chevauchement de code et un conflit dans l'ordre d'exécution, donc la troisième méthode est introduite La méthode commune

3. Créez un script, insérez-le dans le DOM et rappelez-vous une fois le chargement terminé,

 var script = document.createElement(&#39;script&#39;);
 script.type = "text/javescript";
 script.src = "demo.js";
// 此时就会加载src地址里面的东西
// 此时会有一个灯塔模式,灯塔模式会产生一个img属性,用来存放地址的加载
document.head.appendChild(script);  //----此时就会在页面上展示js里面的内容
Copier après la connexion

Lorsque nous écrivons une fonction de test dans le fichier js externe

var script = document.createElement(&#39;script&#39;);
script.type = "text/javascript";
script.src = "demo.js";
test();
document.head.appendChild(script);
Copier après la connexion

Le fichier demo.js externe. ne sera pas affiché, il contient une fonction de test. Les résultats sont les suivants :

Lorsque la fonction de test est exécutée, le chargement prend du temps. Lorsque le test est exécuté, il n'a pas encore été chargé. Cela montrera donc que le test n'est pas défini. Comment pouvons-nous résoudre ce problème ?

Nous penserons d’abord à l’événement onload.

script.onload : La compatibilité est très bonne, Safari Chrome Firefox Opera est compatible

 script.onload = function(){
                                test();
                            }
Copier après la connexion

Mais IE n'a pas d'événement onload pour le script, IE a sa propre méthode : script. état prêt .

script.readyState : il y a un code d'état (readyState) sur le script d'IE, et le code d'état est vérifié pour déterminer s'il est chargé. Dans IE, la balise script a un événement readyStatechange. Cet événement écoute un événement déclenché lorsque la valeur script.readyState change.

(script.readyState == "complete" || script.readyState == "loaded" signifie que l'analyse est terminée.)

script.onreadystatechange = function(){
      if(script.readyState == "complete" || script.readyState == "loaded"){
                  callback(); //回调函数:当满足一定条件才可以被执行
              }
                  }
Copier après la connexion

Enfin, nous encapsulons la fonction à réaliser notre fonction de chargement à la demande.

 function loadScript(url,callback){
                        var script = document.createElement(&#39;script&#39;);
                        script.type = "text/javascript";
                        if(script.readyState){
                            script.onreadyStatechange = function(){
                                if (script.readyState == "loaded" || script.readyState == "complete") {
                                    obj[callback]();
                                }
                            }    
                        }else{
                            script.onload = function(){
                                obj[callback]();
                            }
                        }
                        script.src = url;
                        document.head.appendChild(script);
                    }

                    loadScript(&#39;demo.js&#39;,&#39;test&#39;);
Copier après la connexion

Articles connexes recommandés :

Tutoriel js - Implémentation et solution de l'erreur de suppression de boucle de tableau

[Javascript]code source de zepto Analyse des rappels

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Gérer efficacement les situations dans lesquelles jQuery .val() ne fonctionne pas Gérer efficacement les situations dans lesquelles jQuery .val() ne fonctionne pas Feb 20, 2024 pm 09:36 PM

Titre : Méthodes et exemples de code pour résoudre le problème selon lequel jQuery.val() ne fonctionne pas. Dans le développement front-end, jQuery est souvent utilisé pour faire fonctionner des éléments de page. Parmi elles, obtenir ou définir la valeur d’un élément de formulaire est l’une des opérations courantes. Habituellement, nous utilisons la méthode .val() de jQuery pour opérer sur les valeurs des éléments de formulaire. Cependant, vous rencontrez parfois des situations dans lesquelles jQuery.val() ne fonctionne pas, ce qui peut entraîner des problèmes. Cet article explique comment gérer efficacement jQuery.val (

c# Qu'est-ce que la délégation et quel problème résout-elle ? c# Qu'est-ce que la délégation et quel problème résout-elle ? Apr 04, 2024 pm 12:42 PM

La délégation est un type de référence de type sécurisé utilisé pour transmettre des pointeurs de méthode entre des objets afin de résoudre des problèmes de programmation asynchrone et de gestion d'événements : Programmation asynchrone : la délégation permet d'exécuter des méthodes dans différents threads ou processus, améliorant ainsi la réactivité de l'application. Gestion des événements : les délégués simplifient la gestion des événements, permettant de créer et de gérer des événements tels que des clics ou des mouvements de souris.

Comment lire le HTML Comment lire le HTML Apr 05, 2024 am 08:36 AM

Bien que le HTML lui-même ne puisse pas lire les fichiers, la lecture des fichiers peut être réalisée via les méthodes suivantes : en utilisant JavaScript (XMLHttpRequest, fetch()) ; en utilisant des langages côté serveur (PHP, Node.js) en utilisant des bibliothèques tierces (jQuery. get() , axios, fs-extra).

Le mode d'optimisation clé pour améliorer la vitesse du site Web, tout développeur front-end doit le maîtriser ! Le mode d'optimisation clé pour améliorer la vitesse du site Web, tout développeur front-end doit le maîtriser ! Feb 02, 2024 pm 05:36 PM

Un incontournable pour les développeurs front-end : maîtrisez ces modes d’optimisation et faites voler votre site web ! Avec le développement rapide d’Internet, les sites Web sont devenus l’un des canaux importants de promotion et de communication des entreprises. Un site Web performant et à chargement rapide améliore non seulement l’expérience utilisateur, mais attire également plus de visiteurs. En tant que développeur front-end, il est essentiel de maîtriser certains modèles d'optimisation. Cet article présentera certaines techniques d'optimisation frontale couramment utilisées pour aider les développeurs à mieux optimiser leurs sites Web. Fichiers compressés Dans le développement de sites Web, les types de fichiers couramment utilisés incluent HTML, CSS et J

Comment introduire du js externe en HTML Comment introduire du js externe en HTML Apr 11, 2024 am 06:18 AM

Pour inclure un fichier JS externe en HTML, utilisez la balise <script> et précisez l'URL du fichier à charger. Vous pouvez également spécifier des attributs de type, defer ou async pour contrôler la manière dont le chargement et l'exécution se produisent. Généralement, la balise <script> doit être placée au bas de la section <body> pour éviter de bloquer le rendu de la page.

Comment empêcher la redirection de page dans WordPress ? Comment empêcher la redirection de page dans WordPress ? Mar 05, 2024 am 09:33 AM

Comment empêcher la redirection de page dans WordPress ? Dans le développement de sites Web, nous souhaitons parfois implémenter un paramètre de non-saut de page dans WordPress, c'est-à-dire que lors de certaines opérations, le contenu de la page peut être mis à jour sans actualiser la page entière. Cela améliore l’expérience utilisateur et rend le site Web plus fluide. Ensuite, nous partagerons comment implémenter le paramètre de non-saut de page dans WordPress et fournirons des exemples de code spécifiques. Tout d’abord, nous pouvons utiliser Ajax pour empêcher la page de sauter. Ajax

Partage de conseils d'optimisation de la fonction de recherche PHP Partage de conseils d'optimisation de la fonction de recherche PHP Mar 06, 2024 am 11:12 AM

La fonction de recherche PHP a toujours été une partie très importante du développement de sites Web, car les utilisateurs utilisent souvent le champ de recherche pour trouver les informations dont ils ont besoin. Cependant, de nombreux sites Web rencontrent des problèmes tels qu’une faible efficacité et des résultats de recherche inexacts lors de la mise en œuvre des fonctions de recherche. Afin de vous aider à optimiser la fonction de recherche PHP, cet article partagera quelques conseils et fournira des exemples de code spécifiques. 1. Utilisez des moteurs de recherche en texte intégral Les bases de données SQL traditionnelles sont moins efficaces lors du traitement de grandes quantités de contenu textuel. Par conséquent, il est recommandé d'utiliser des moteurs de recherche en texte intégral, tels qu'Elasticsearch, Solr, etc.

Démystifier l'optimisation des performances d'un site Web : maîtrisez ces méthodes pour faire monter en flèche la vitesse de votre site Web ! Démystifier l'optimisation des performances d'un site Web : maîtrisez ces méthodes pour faire monter en flèche la vitesse de votre site Web ! Feb 03, 2024 am 08:00 AM

L'optimisation des performances du site Web révélée : maîtrisez ces méthodes pour faire voler votre site Web ! Avec le développement rapide d’Internet, les sites Web sont devenus un canal important pour la promotion des entreprises, la présentation des produits, ainsi que la communication et l’interaction. Cependant, lorsque les utilisateurs visitent le site Web, si la vitesse de chargement est trop lente et le temps de réponse trop long, l'expérience utilisateur sera considérablement réduite et peut même directement inciter les utilisateurs à partir. Par conséquent, l’optimisation des performances des sites Web devient de plus en plus importante. Alors, qu’est-ce que l’optimisation des performances d’un site Web ? En termes simples, l'optimisation des performances d'un site Web consiste à améliorer la vitesse de chargement du site Web grâce à une série de méthodes et de moyens techniques.

See all articles