Jquery中$(document).ready()和load的区别
xml文件加密破解[导读] $(document) ready()和window onload在表单上看都是页⾯加载时我们就去执⾏⼀个函数或动作,但是在具体的细节上$(document) ready()和window onload还是有区别的,下⾯我来介绍介绍。最基本的区别1 执⾏时间win
$(document).ready()和load在表单上看都是页⾯加载时我们就去执⾏⼀个函数或动作,但是在具体的细节上$(document).ready()和load还是有区别的,下⾯我来介绍介绍。
最基本的区别
1.执⾏时间
$(document).ready()是DOM结构绘制完毕后就执⾏,不必等到加载完毕。
2.编写个数不同
$(document).ready()可以同时编写多个,并且都可以得到执⾏
3.简化写法
$(document).ready(function(){})可以简写成$(function(){});
以浏览器装载⽂档为例,在页⾯加载完毕后,浏览器会通过JavaScript为DOM元素添加事件。在常规的JavaScript代码中,通常使⽤load⽅法,⽽在jQuery中,使⽤的是$(document).ready()⽅法。
$(document).ready()⽅法和load⽅法有相似的功能,但是在执⾏时机⽅⾯是有区别的。load⽅法是在⽹页中所有的元素(包括元素的关联⽂件)完全加载到浏览器后才执⾏,即JavaScript此时才可以访问⽹页中的任何元素。⽽通过jQuery中的$(document).ready()⽅法注册的事件处理程序,可以在DOM完全就绪时就可以被调⽤。此时,⽹页的所有元素对jQuery⽽⾔都是可以访问的,但是,这并不意味着这些元素关联的⽂件都已经下载完毕。
java博客举⼀个例⼦,有⼀个⼤型的图库⽹站,为⽹页中所有图⽚添加某些⾏为,例如单击图⽚后让它隐藏或显⽰。如果使⽤load⽅法来处理,那么⽤户必须等到每⼀幅图⽚都加载完毕后,才可以进⾏
操作。如果使⽤jQuery中的$(document).ready()⽅法来进⾏设置,只要DOM就绪时就可以操作了,不需要等待所有图⽚下载完毕。很显然,把⽹页解析为DOM树的速度⽐把⽹页中的所有关联⽂件加载完毕的速度快很多。
另外需要注意⼀点,由于在$(document).ready()⽅法内注册的事件,只要DOM就绪就会被执⾏,因此可能此时元素的关联⽂件未下载完。例如与图⽚有关的HTML下载完毕,并且已经解析为DOM树了,但很有可能图⽚还未加载完毕,所以例如图⽚的⾼度和宽度这样的属性此时不⼀定有效。要解决这个问题,可以使⽤JQuery中另⼀个关于页⾯加载的⽅法——load()⽅法。load()⽅法会在元素的onload事件中绑定⼀个处理函数。如果处理函数绑定给window对象,则会在所有内容(包括窗⼝、框架、对象和图像等)加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。jQuery代码如下:
代码如下复制代码
sql语言称为$(window).load(function () {
//编写代码
})
java编程软件安装过程
等价与javaScript中的以下代码:
代码如下复制代码
//编写代码
}
假设⽹页中有两个函数,JavaScript代码如下:
代码如下复制代码
function one() {
alert("one");
}
function two() {
alert("two");
}
当⽹页加载完毕后,通过Javascript代码来分别调⽤one函数和two函数:
代码如下复制代码
然⽽当运⾏代码后,发现只弹出字符串“two”对话框。
字符串“one”对话框不能被弹出的原因是JavaScript的onload事件⼀次只能保存在⼀个函数的引⽤,它会⾃动⽤后⾯的函数覆盖前⾯的函数,因此不能在现有的⾏为上添加新的⾏为。
为了达到两个函数顺序触发的效果,只能在创建⼀个新的JavaScript⽅法来实现,JavaScript代码如下:
代码如下复制代码
one();
jquery下载文件请求two();
}
虽然这样编写的代码能解决某些问题,但还是不能满⾜某些需求,例如有多个JavaScript⽂件,每个⽂件都需要⽤到load⽅法,这种情况下⽤上⾯提到的⽅法编写代码会⾮常⿇烦。你可以参考Javascript共享onload事件,⽽jQuery的$(document).ready()⽅法能够很好地处理这些情况,每次调⽤$(document).ready()⽅法都会在现有的⾏为上追加新的⾏为,这些⾏为函数会根据注册的顺序依次执⾏。例如如下jQuery代码:
代码如下复制代码
function one() {
alert("one");
}
function two() {
alert("two");
}
$(document).ready(function () {
one();
});
$(document).ready(function () {
two();
})
运⾏代码后,会弹出字符串“one”对话框,然后弹出字符串“two”对话框
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论