Maison > Article > interface Web > Explication détaillée du traitement de documents de jQuery program_jquery
L'exemple de cet article décrit le programme de traitement de documents jQuery. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Gestionnaire de documents jQuery
Le soi-disant gestionnaire de documents fait référence à l'événement $(document).ready fourni dans jQuery. Cet événement sera déclenché après le chargement du dom, tandis que window.onlaod et body.onload sont tous deux déclenchés une fois la page entièrement chargée. chargé.
Introduction au programme de traitement de documents jQuery
Dans jQuery, si vous souhaitez implémenter la logique de traitement après le chargement du DOM, il vous suffit d'utiliser l'événement $(document).ready(). Cette fonction événementielle est appelée « gestionnaire de documents jQuery ».
Vous pouvez écrire les déclarations suivantes n'importe où sur la page, même dans des fichiers js externes :
$(document).ready(function (){ alert("document.ready")});
L'instruction d'alerte sera exécutée immédiatement après le chargement du DOM de la page. S'il y a des images volumineuses, des fichiers js et d'autres ressources externes sur la page qui doivent être chargées, le programme de traitement de documents de jQuery sera exécuté avant eux, tandis que window.onload et boyd.onload sont exécutés après le chargement de tous les fichiers de ressources.
La fonction Ready() est une fonction objet jQuery fournie dans la "fonction événement" jQuery, avec le bit de signature ready(fn).
fn est la fonction exécutée lorsque l'événement ready se produit.
Comme il s'agit d'une fonction d'objet jQuery, cela signifie qu'elle peut être appelée sur n'importe quel objet jQuery :
$("body").ready(function (){ alert("body.ready")});
La déclaration ci-dessus équivaut à :
$(document).ready(function (){alert("body.ready")});
Bien que la fonction ready() puisse être utilisée sur n'importe quel objet jQuery, vous devez faire attention à savoir si l'objet a un événement ready lorsque vous l'utilisez.
Vous pouvez également utiliser la forme simplifiée de "$(fn)" :
$(function (){….}) //等效于$(document).ready(function(){…});
Comme tous les objets événementiels dans jQuery, l'événement $(document).ready sera exécuté dans l'ordre d'apparition.
Par exemple, l'événement $(document).ready peut être appelé deux fois :
$(document).ready(function (){alert("document.ready-1")}); $(document). ready(function (){alert("document.ready-2")});
Une fois le DOM chargé, "document.ready-1" sera affiché en premier, puis "document.ready-2" sera affiché. Si vous utilisez du traditionnel :
Window.onload=function(){…..};
Le code ci-dessus gérera l'événement d'origine de window.onload puis liera le nouvel événement.
Avantages du gestionnaire de documents jQuery
Si le script doit être exécuté lors du chargement de la page, alors la plupart des scripts peuvent être placés dans l'événement $(document).ready().
Avant d'illustrer les avantages du programme de traitement de documents jQuery, examinons d'abord une erreur de programmation JavaScript courante : modifier le modèle dom avant le chargement du dom.
En programmation javascript traditionnelle. Parfois, des modules de script sont insérés directement en tête ou en bas de la page et le code est écrit, comme dans l'exemple suivant :
<!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>
Cet exemple fonctionne bien dans tous les navigateurs, mais il existe des dangers cachés. Parce que lorsque la page est chargée, un nouvel objet div est ajouté au conteneur divMsg, c'est-à-dire qu'un objet dom est ajouté lorsque la vitesse du réseau ralentit ou que la page est volumineuse et prend un certain temps à se charger, un ". Une erreur « opération interrompue » se produira. .
Cette erreur est même apparue sur la page d'accueil de Google, Taobao et d'autres sites Web bien connus, car cette erreur est difficile à trouver lors des tests.
Ainsi, lorsque vous faites du développement Web, vous devez vous rappeler une vérité : ne modifiez jamais la structure du dom lorsque le dom est chargé.
Si vous devez modifier la structure DOM lors du chargement de la page, la méthode originale consiste à l'implémenter via les événements window.onload et body.onload. Par exemple, pour l'exemple d'erreur ci-dessus, vous pouvez la modifier comme suit :
<script type="text/javascript"> Window.onload=function() { Document.getElementById("divMsg").innerHTML="<divstyle="\border:solid 2px #FF0000\">动态添加的图层</div>"; }; </script>
Il existe de nombreuses méthodes d'implémentation spécifiques. Utilisez window.onload et body.onload car ces deux événements sont exécutés après le chargement du dom et le chargement de toutes les ressources de la page. Ou jugez l'état du dom en fonction de "document.readyState". S'il est "complet", effectuez certaines opérations. Ce principe est utilisé en interne dans le programme de traitement de documents $(document).ready.
Les lecteurs intéressés par davantage de contenu lié à jquery peuvent consulter les sujets spéciaux sur ce site : "Résumé des techniques courantes d'opération de jquery", "Résumé de l'utilisation et des techniques courantes des événements jQuery ", " Résumé des compétences en matière de données JSON d'opération JQuery", "Résumé des compétences d'opération XML jQuery" et "Résumé des compétences d'extension jQuery"
J'espère que cet article sera utile à tous ceux qui programment jquery.