Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung des Dokumentverarbeitungsprogramms_jquery von jQuery

Detaillierte Erläuterung des Dokumentverarbeitungsprogramms_jquery von jQuery

WBOY
WBOYOriginal
2016-05-16 09:00:143086Durchsuche

Das Beispiel in diesem Artikel beschreibt das jQuery-Dokumentverarbeitungsprogramm. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

jQuery-Dokumenthandler

Der sogenannte Dokumenthandler bezieht sich auf das in jQuery bereitgestellte Ereignis $(document).ready. Dieses Ereignis wird ausgelöst, nachdem der Dom geladen wurde, während window.onlaod und body.onload beide ausgelöst werden, nachdem die Seite vollständig ist geladen.

Einführung in das jQuery-Dokumentverarbeitungsprogramm

Wenn Sie in jQuery die Verarbeitungslogik nach dem Laden des DOM implementieren möchten, müssen Sie nur das Ereignis $(document).ready() verwenden. Diese Ereignisfunktion wird als „jQuery-Dokumenthandler“ bezeichnet.

Sie können die folgenden Anweisungen überall auf der Seite schreiben, auch in externen JS-Dateien:

$(document).ready(function (){ alert("document.ready")});

Die Warnanweisung wird unmittelbar nach dem Laden des DOM der Seite ausgeführt. Wenn auf der Seite große Bilder, JS-Dateien und andere externe Ressourcen geladen werden müssen, wird das Dokumentverarbeitungsprogramm von jQuery vor ihnen ausgeführt, während window.onload und boyd.onload ausgeführt werden, nachdem alle Ressourcendateien geladen wurden.

Die Ready()-Funktion ist eine jQuery-Objektfunktion, die in der jQuery-„Ereignisfunktion“ mit dem Signaturbit ready(fn) bereitgestellt wird.

fn ist die Funktion, die ausgeführt wird, wenn das Bereitschaftsereignis auftritt.

Da es sich um eine jQuery-Objektfunktion handelt, bedeutet dies, dass sie für jedes jQuery-Objekt aufgerufen werden kann:

$("body").ready(function (){ alert("body.ready")});

Die obige Aussage entspricht:

$(document).ready(function (){alert("body.ready")});

Obwohl die Funktion ready() für jedes jQuery-Objekt verwendet werden kann, müssen Sie bei der Verwendung darauf achten, ob das Objekt über ein Ready-Ereignis verfügt.

Sie können auch die vereinfachte Form von „$(fn)“ verwenden:

$(function (){….})
//等效于$(document).ready(function(){…});

Wie alle Ereignisobjekte in jQuery wird das Ereignis $(document).ready in der Reihenfolge seines Auftretens ausgeführt.

Zum Beispiel kann das $(document).ready-Ereignis zweimal aufgerufen werden:

$(document).ready(function (){alert("document.ready-1")});
$(document). ready(function (){alert("document.ready-2")});

Nachdem das DOM geladen wurde, wird zuerst „document.ready-1“ und dann „document.ready-2“ ausgegeben. Bei traditioneller Verwendung:

Window.onload=function(){…..};

Der obige Code verarbeitet das ursprüngliche Ereignis von window.onload und bindet dann das neue Ereignis.

Vorteile des jQuery-Dokumenthandlers

Wenn das Skript beim Laden der Seite ausgeführt werden muss, können die meisten Skripte im Ereignis $(document).ready() platziert werden.

Bevor wir die Vorteile des jQuery-Dokumentverarbeitungsprogramms veranschaulichen, schauen wir uns zunächst einen häufigen JavaScript-Programmierfehler an: das Ändern des Dom-Modells, bevor der Dom geladen wird.

In der traditionellen Javascript-Programmierung. Manchmal werden Skriptmodule direkt am Kopf oder am Ende der Seite eingefügt und Code geschrieben, wie zum Beispiel das folgende Beispiel:

<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 
Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>jQueryStorm – 常见错误编程方式举例</title>
  <scriptlanguage="javascript"type="text/javascript"src="../include/jquery-1.7.1.js"></script>
</head>
<body>
<!-- 页面内容部分 –>
<div id="divMsg" style="border:solid 1px#000000;padding:20px;"></div>
<!-- 尾部模块 -->
<script language="javascript" type="text/javascript">
  //这条语句在某些情况下会导致错误
  Document.getElementById("divMsg").innerHTML="<divstyle=\"border:solid 2px #FF0000\">动态添加的图层</div>";
</script>
</boyd>
</html>

Dieses Beispiel funktioniert gut in allen Browsern, es gibt jedoch versteckte Gefahren. Denn wenn die Seite geladen wird, wird dem divMsg-Container ein neues div-Objekt hinzugefügt, also ein dom-Objekt. Wenn die Netzwerkgeschwindigkeit nachlässt oder die Seite groß ist und das Laden eine gewisse Zeit in Anspruch nimmt, wird ein „ Es tritt der Fehler „Vorgang abgebrochen“ auf. .

Dieser Fehler ist sogar auf der Google-Startseite, Taobao und anderen bekannten Websites aufgetreten, da dieser Fehler beim Testen schwer zu finden ist.

Wenn Sie also eine Webentwicklung durchführen, müssen Sie sich an eine Wahrheit erinnern: Ändern Sie niemals die Dom-Struktur, wenn der Dom geladen ist.

Wenn Sie die DOM-Struktur beim Laden der Seite ändern müssen, besteht die ursprüngliche Methode darin, sie über die Ereignisse window.onload und body.onload zu implementieren. Für das obige Fehlerbeispiel können Sie sie beispielsweise wie folgt ändern.

<script type="text/javascript">
Window.onload=function()
{
  Document.getElementById("divMsg").innerHTML="<divstyle="\border:solid 2px #FF0000\">动态添加的图层</div>";
};
</script>

Es gibt viele spezifische Implementierungsmethoden. Verwenden Sie window.onload und body.onload, da diese beiden Ereignisse ausgeführt werden, nachdem der Dom geladen wurde und alle Seitenressourcen geladen sind. Oder beurteilen Sie den Status des Doms anhand von „document.readyState“. Wenn er „vollständig“ ist, führen Sie bestimmte Operationen aus. Dieses Prinzip wird intern im Dokumentverarbeitungsprogramm $(document).ready verwendet.

Leser, die an mehr JQuery-bezogenen Inhalten interessiert sind, können sich die speziellen Themen auf dieser Website ansehen: „Zusammenfassung gängiger JQuery-Operationstechniken“, „Zusammenfassung der allgemeinen Verwendung und Techniken von JQuery-Ereignissen.“ ", " Zusammenfassung der Fähigkeiten im JQuery-Betrieb, JSON-Daten", "Zusammenfassung der Fähigkeiten im Umgang mit jQuery-XML" und "Zusammenfassung der Fähigkeiten der jQuery-Erweiterung"

Ich hoffe, dass dieser Artikel allen in der JQuery-Programmierung hilfreich sein wird.

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