Heim Web-Frontend js-Tutorial Analyse des asynchronen Ladens des Browsers in JavaScript

Analyse des asynchronen Ladens des Browsers in JavaScript

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

Der Inhalt dieses Artikels befasst sich mit der Analyse des asynchronen Ladens von Browsern in JavaScript. Ich hoffe, dass er für Freunde hilfreich ist.

Als wir js zum ersten Mal lernten, hätten wir wissen müssen, dass js Single-Threaded ist und synchron geladen wird, was die Ladezeile von HTML und CSS blockiert (da js HTML und CSS ändern kann)

Nachteile des synchronen Ladens von js: Die Lade-Tool-Methode muss das Dokument nicht blockieren. Sobald die Netzwerkgeschwindigkeit nicht gut ist, wird die gesamte Website gewartet damit js geladen werden kann, ohne dass anschließendes Rendern und andere Arbeiten erforderlich sind.

Einige Tools und Methoden in js müssen bei Bedarf geladen werden. Müssen Sie sie laden? ? ? Zu diesem Zeitpunkt müssen wir js asynchron laden.

Drei Optionen für das asynchrone Laden von JavaScript.

1. Defer wird asynchron geladen, aber erst ausgeführt, wenn alle DOM-Dokumente analysiert sind. Es kann nur IE verwendet werden, Sie können auch den gesamten Code intern schreiben

 <script type = "text/javascript" src = "tools.js"  defer = "defer"></script>
Nach dem Login kopieren
<script defer = "defer">
console.log("a");
</script>
Nach dem Login kopieren

2. Asynchrones asynchrones Laden, nach dem Laden ausgeführt, asynchron kann nur externe Skripte laden und keine js in das Skript-Tag schreiben

 <script type = "text/javascript" aysnc = "aysnc"></script>
Nach dem Login kopieren

Die beiden oben genannten Methoden blockieren die Seite bei Ausführung nicht

Um das Browserkompatibilitätsproblem zu lösen? ? Wenn die beiden Methoden 1, 2 und 2 gleichzeitig geladen werden, kommt es zu Codeüberschneidungen und Konflikten in der Ausführungsreihenfolge. Daher wird die dritte Methode eingeführt. Die gemeinsame Methode

3. Erstellen Sie ein Skript. Fügen Sie es in das DOM ein und rufen Sie zurück, nachdem der Ladevorgang abgeschlossen ist.

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

Wenn wir eine Testfunktion in die externe js-Datei schreiben

var script = document.createElement(&#39;script&#39;);
script.type = "text/javascript";
script.src = "demo.js";
test();
document.head.appendChild(script);
Nach dem Login kopieren

Die externe Datei demo.js wird nicht angezeigt Hier gibt es eine Testfunktion. Die Ergebnisse sind wie folgt:

Wenn die Testfunktion ausgeführt wird, dauert das Laden. Wenn der Test ausgeführt wird, wurde er noch nicht geladen. Es wird also angezeigt, dass der Test nicht definiert ist. Wie lösen wir dieses Problem?

Zuerst denken wir an das Onload-Event.

script.onload: Die Kompatibilität ist sehr gut, Safari Chrome Firefox Opera ist kompatibel

 script.onload = function(){
                                test();
                            }
Nach dem Login kopieren

Aber IE hat kein Onload-Ereignis für Skripte, IE hat seine eigene Methode: script.readyState .

script.readyState: Es gibt einen Statuscode (readyState) im IE-Skript, und der Statuscode wird überprüft, um festzustellen, ob es geladen ist. Im IE verfügt das Skript-Tag über ein readyStatechange-Ereignis. Dieses Ereignis wartet auf ein Ereignis, das ausgelöst wird, wenn sich der script.readyState-Wert ändert.

(script.readyState == „complete“ ||. script.readyState == „loaded“ bedeutet, dass das Parsen abgeschlossen ist.)

script.onreadystatechange = function(){
      if(script.readyState == "complete" || script.readyState == "loaded"){
                  callback(); //回调函数:当满足一定条件才可以被执行
              }
                  }
Nach dem Login kopieren

Schließlich kapseln wir die Funktion, um unsere On zu realisieren -Demand-Ladefunktion.

 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;);
Nach dem Login kopieren

Empfohlene verwandte Artikel:

JS-Tutorial – Implementierung und Lösung von Fehlern beim Löschen von Array-Schleifen

[Javascript] Zepto-Quellcode-Rückrufanalyse

Das obige ist der detaillierte Inhalt vonAnalyse des asynchronen Ladens des Browsers in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Behandeln Sie effektiv Situationen, in denen jQuery .val() nicht funktioniert Behandeln Sie effektiv Situationen, in denen jQuery .val() nicht funktioniert Feb 20, 2024 pm 09:36 PM

Titel: Methoden und Codebeispiele zur Lösung des Problems, dass jQuery.val() nicht funktioniert. In der Frontend-Entwicklung wird jQuery häufig zum Betrieb von Seitenelementen verwendet. Unter diesen ist das Abrufen oder Festlegen des Werts eines Formularelements eine der häufigsten Operationen. Normalerweise verwenden wir die .val()-Methode von jQuery, um Formularelementwerte zu bearbeiten. Allerdings kommt es manchmal vor, dass jQuery.val() nicht funktioniert, was zu Problemen führen kann. In diesem Artikel erfahren Sie, wie Sie effektiv mit jQuery.val umgehen (

c# Was ist Delegation und welches Problem löst sie? c# Was ist Delegation und welches Problem löst sie? Apr 04, 2024 pm 12:42 PM

Delegation ist ein typsicherer Referenztyp, der zum Übergeben von Methodenzeigern zwischen Objekten verwendet wird, um Probleme bei der asynchronen Programmierung und der Ereignisbehandlung zu lösen: Asynchrone Programmierung: Durch die Delegation können Methoden in verschiedenen Threads oder Prozessen ausgeführt werden, wodurch die Reaktionsfähigkeit der Anwendung verbessert wird. Ereignisverarbeitung: Delegierte vereinfachen die Ereignisverarbeitung und ermöglichen die Erstellung und Verarbeitung von Ereignissen wie Klicks oder Mausbewegungen.

Wie liest man HTML Wie liest man HTML Apr 05, 2024 am 08:36 AM

Obwohl HTML selbst keine Dateien lesen kann, kann das Lesen von Dateien durch die folgenden Methoden erreicht werden: mithilfe von JavaScript (XMLHttpRequest, fetch()); mithilfe von serverseitigen Sprachen (PHP, Node.js); get() , axios, fs-extra).

Der wichtigste Optimierungsmodus zur Verbesserung der Website-Geschwindigkeit, den jeder Front-End-Entwickler beherrschen muss! Der wichtigste Optimierungsmodus zur Verbesserung der Website-Geschwindigkeit, den jeder Front-End-Entwickler beherrschen muss! Feb 02, 2024 pm 05:36 PM

Ein Muss für Frontend-Entwickler: Beherrschen Sie diese Optimierungsmodi und bringen Sie Ihre Website zum Fliegen! Mit der rasanten Entwicklung des Internets sind Websites zu einem wichtigen Kanal für die Unternehmensförderung und -kommunikation geworden. Eine leistungsstarke und schnell ladende Website verbessert nicht nur das Benutzererlebnis, sondern zieht auch mehr Besucher an. Als Frontend-Entwickler ist es wichtig, einige Optimierungsmuster zu beherrschen. In diesem Artikel werden einige häufig verwendete Techniken zur Front-End-Optimierung vorgestellt, um Entwicklern dabei zu helfen, ihre Websites besser zu optimieren. Komprimierte Dateien Bei der Website-Entwicklung werden häufig folgende Dateitypen verwendet: HTML, CSS und J

So führen Sie externe JS in HTML ein So führen Sie externe JS in HTML ein Apr 11, 2024 am 06:18 AM

Um eine externe JS-Datei in HTML einzubinden, verwenden Sie das <script>-Tag und geben Sie die URL der zu ladenden Datei an. Sie können auch Typ-, Verzögerungs- oder Asynchronattribute angeben, um zu steuern, wie das Laden und die Ausführung erfolgen. Normalerweise sollte das <script>-Tag am Ende des <body>-Abschnitts platziert werden, um das Rendern der Seite nicht zu blockieren.

Wie verhindert man die Seitenumleitung in WordPress? Wie verhindert man die Seitenumleitung in WordPress? Mar 05, 2024 am 09:33 AM

Wie verhindert man die Seitenumleitung in WordPress? Bei der Website-Entwicklung möchten wir manchmal eine Seiten-Non-Jump-Einstellung in WordPress implementieren, das heißt, bei bestimmten Vorgängen kann der Seiteninhalt aktualisiert werden, ohne die gesamte Seite zu aktualisieren. Dies verbessert die Benutzererfahrung und macht die Website reibungsloser. Als Nächstes erklären wir Ihnen, wie Sie die Seiten-Non-Jump-Einstellung in WordPress implementieren und stellen spezifische Codebeispiele bereit. Erstens können wir Ajax verwenden, um zu verhindern, dass die Seite springt. Ajax

Weitergabe von Tipps zur Optimierung der PHP-Suchfunktion Weitergabe von Tipps zur Optimierung der PHP-Suchfunktion Mar 06, 2024 am 11:12 AM

Die PHP-Suchfunktion war schon immer ein sehr wichtiger Bestandteil der Website-Entwicklung, da Benutzer häufig das Suchfeld verwenden, um die benötigten Informationen zu finden. Viele Websites haben jedoch Probleme wie geringe Effizienz und ungenaue Suchergebnisse bei der Implementierung von Suchfunktionen. Um Ihnen bei der Optimierung der PHP-Suchfunktion zu helfen, gibt dieser Artikel einige Tipps und stellt spezifische Codebeispiele bereit. 1. Verwenden Sie Volltextsuchmaschinen. Herkömmliche SQL-Datenbanken sind bei der Verarbeitung großer Mengen an Textinhalten weniger effizient. Daher wird empfohlen, Volltextsuchmaschinen wie Elasticsearch, Solr usw. zu verwenden.

Entmystifizierung der Website-Performance-Optimierung: Beherrschen Sie diese Methoden, um die Geschwindigkeit Ihrer Website zu steigern! Entmystifizierung der Website-Performance-Optimierung: Beherrschen Sie diese Methoden, um die Geschwindigkeit Ihrer Website zu steigern! Feb 03, 2024 am 08:00 AM

Website-Performance-Optimierung enthüllt: Beherrschen Sie diese Methoden, um Ihre Website zum Erfolg zu bringen! Mit der rasanten Entwicklung des Internets sind Websites zu einem wichtigen Kanal für Unternehmenswerbung, Produktpräsentation sowie Kommunikation und Interaktion geworden. Wenn Benutzer jedoch die Website besuchen und die Ladegeschwindigkeit zu langsam und die Reaktionszeit zu lang ist, wird das Benutzererlebnis erheblich beeinträchtigt und kann sogar direkt dazu führen, dass Benutzer die Website verlassen. Daher wird die Optimierung der Website-Performance immer wichtiger. Was ist also Website-Performance-Optimierung? Einfach ausgedrückt besteht die Optimierung der Website-Leistung darin, die Ladegeschwindigkeit der Website durch eine Reihe von Methoden und technischen Mitteln zu verbessern.

See all articles