the example in this article describes the jquery document processing program. share it with everyone for your reference, the details are as follows:
jquery document handler
the so-called document handler refers to the $(document).ready event provided in jquery. this event will be triggered after the dom is loaded, while window.onlaod and body.onload are both triggered after the page is fully loaded.
introduction to jquery document handler
in jquery, if you want to implement the processing logic after the dom is loaded, you only need to use the $(document).ready() event. this event function is called a "jquery document handler".
you can write the following statements anywhere on the page, even in external js files:
$(document).ready(function (){ alert("document.ready")});
the alert statement will be executed immediately after the dom of the page is loaded. if there are large images, js files and other external resources on the page that need to be loaded, jquery's document processing program will be executed before them, while window.onload and boyd.onload are executed after all resource files are loaded.
the ready() function is a jquery object function provided in jquery "event function", with the signature bit ready(fn).
fn is the function executed when the ready event occurs.
because it is a jquery object function, it means it can be called on any jquery object:
$("body").ready(function (){ alert("body.ready")});
the above statement is equivalent to:
$(document).ready(function (){alert("body.ready")});
although the ready() function can be used on any jquery object, you must pay attention to whether the object has a ready event when using it.
you can also use the simplified form "$(fn)":
$(function (){….}) //等效于$(document).ready(function(){…});
like all event objects in jquery, the $(document).ready event will be executed in the order of occurrence.
for example, the $(document).ready event can be called twice:
$(document).ready(function (){alert("document.ready-1")}); $(document). ready(function (){alert("document.ready-2")});
after the dom is loaded, "document.ready-1" is output first, and then "document.ready-2" is output. if using traditional:
window.onload=function(){…..};
the above code will handle the original event of window.onload and then bind the new event.
advantages of jquery document handler
if the script needs to be executed when the page loads, then most of the scripts can be placed in the $(document).ready() event.
before exemplifying the advantages of the jquery document processing program, let's first look at a common javascript programming error: changing the dom model before the dom is loaded.
in traditional javascript programming. sometimes a script module is inserted directly at the head or bottom of the page and the code is written, such as the following example:
<!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>
this example works well in all browsers, but there are hidden dangers. because when the page is loaded, a new div object is added to the divmsg container, that is, a dom object is added. when the network speed slows down or the page is large and takes a certain amount of time to load, an "aborted operation" error will occur. .
this error has even appeared on the google homepage, taobao and other well-known websites, because this error is difficult to find during testing.
so when doing web development, you must remember one truth: never modify the dom structure when the dom is loaded.
if you need to modify the dom structure when the page is loaded, the original method is to implement it through the window.onload and body.onload events. for example, for the above error example, you can modify it to:
<script type="text/javascript"> Window.onload=function() { Document.getElementById("divMsg").innerHTML="<divstyle="\border:solid 2px #FF0000\">动态添加的图层</div>"; }; </script>
there are many specific implementation methods. use window.onload and body.onload because these two events are executed after the dom is loaded and all page resources are loaded. this is the simplest method. or judge the state of the dom based on "document.readystate". if it is "complete", perform certain operations. this principle is used internally in jquery's document processing program $(document).ready.
readers who are interested in more jquery-related content can check out the special topics on this site: "summary of common jquery operation skills", " summary of jquery common event usage and techniques", " summary of jquery techniques for operating json data", "summary of jquery techniques for operating xml" and "jquery extension skills summary》
i hope this article will be helpful to everyone in jquery programming.