JQ中$(window).load和$(document).ready区别与执
⾏顺序
JQ中的$(document).ready()⼤家应该⽤的⾮常多,基本每个JS脚本中都有这个函数的出现有时甚⾄会出现多个,那么另⼀个加载函数$(window).load相对出现的次数就很少了,下⾯为⼤家介绍⼀下两者的区别与他们的执⾏顺序
⼀般情况下⼀个页⾯响应加载的基本顺序是:域名解析 -> 加载html -> 加载js和css -> 加载图⽚等其他信息。
那么我们在编写JS脚本时什么情况下使⽤$(document).ready()⼜在什么情况下使⽤$(window).load呢,我们先来了解⼀下两者的功能
⼀、$(document).ready()
从字⾯的意思上理解,就是⽂档准备好了。也就是浏览器已经加载并解析完整个html⽂档,dom树已经建⽴起来了,然后执⾏此函数
原⽣JavaScript中的写法如下:
alert("ready");
}
jQuery中的写法如下:
$(document).ready(function(){
alert("ready");
});
$(function(){
alert("ready");
});
⼆、$(window).load
在⽹页中所有元素(包括页⾯中图⽚,css⽂件等所有关联⽂件)完全加载到浏览器后才执⾏
原⽣JavaScript中的写法如下:
alert("onload");
};
jQuery中的写法如下:
$(window).load(function(){
alert("onload");
});
两者的区别在于:
1.执⾏时间不同
$(document).ready()是在页⾯完成HTML的加载并建⽴了DOM树之后就开始执⾏,但这并不代表页⾯的所
有数据已经全部加载完成,⼀些⼤的图⽚有会在建⽴DOM树之后很长⼀段时间才⾏加载完成,⽽
$(window).load()就是整个页⾯已经加载完毕后才执⾏,包括图⽚等⼀些关联⽂件。
2.可以被执⾏的次数不同
$(document).ready()可以在JavaScript代码中出现多次,并且⾥⾯的函数或者代码都可以执⾏;⽽$(window).load()只能在JavaScript代码中出现⼀次,如果有多个$(window).load(),那么只有最后⼀个$(window).load()⾥⾯的函数或者代码才会执⾏,之前的$(window).load()都将被覆盖;
html document是什么3.执⾏的效率不同
如要在dom的元素节点中添加onclick属性节点,这时⽤$(document).ready()就要⽐⽤$(window).load()的效率⾼;但是在某些
时候还必须得⽤$(window).load()才⾏
总结⼀下就是:$(window).load()在$(document).ready之后执⾏,且页⾯中所有内容全部加载完成后才会执⾏,两者的使⽤时机⼀⽬了然,⼤家可以⾃⾏决定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。