首页 > 生活万象知识

document.ready(document.ready和window.onload)

document.ready和onload的区别

document.ready和onload的区别为:加载程度不同、执行次数不同、执行速度不同。

一、加载程度不同

1.document.ready:在DOM加载完成后就可以可以对DOM进行*作。一般情况一个页面响应加载的顺序是,域名解析-加载html-加载js和css-加载图片等其他信息。那么DomReady应该在“加载js和css”和“加载图片等其他信息”之间,就可以*作Dom了。

2.onload:在document文档加载完成后就可以可以对DOM进行*作,document文档包括了加载图片等其他信息。那么Dom Load就是在页面响应加载的顺序中的“加载图片等其他信息”之后,就可以*作Dom了。

二、执行次数不同

1.document.ready:document.ready可以写多个.ready,可以执行多次,第N次都不会被上一次覆盖。

2.onload:onload只能执行一次,如果有多个,那么第一次的执行会被覆盖。

三、执行速度不同

1.document.ready:onload除了要等待DOM被创建还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。如果加载图片和媒体内容花费了大量时间,用户就会感受到定义在onload*上的代码在执行时有明显的延迟。

2.onload:document.ready函数只需对 DOM树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。

JS 页面加载触发* document.ready和onload的区别

一、使用时机不同

1、onload:当用户进入页面时就会触发。

2、document.ready:是当DOM载入就绪可以查询及*纵时绑定一个要执行的函数。

二、作用不同

1、onload:*常用来检测访问者的浏览器类型和版本,然后根据这些信息载入特定版本的网页。

2、document.ready:是对向window.load*注册*的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并*纵时立即调用所绑定的函数。

三、作用不同

1、onload:常被用来处理用户进入或离开页面时所建立的 cookies。

2、document.ready:是*模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。

参考资料来源:百度百科-J*ascript*

参考资料来源:百度百科-ready(fn)

$(document).ready()的区别

$(document).ready(…)和 window.onload*虽然具有类似的效果,但是,它们在触发*作的时间上存在着微妙的差异。

window.onload

当一个文档完全下载到浏览器中时,会触发 window.onload*。这意味着页面上的全部元素对 j*ascript而言都是可以访问的,这种情况对编写功能性的代码非常有利,因为无需考虑加载的次序。

$(document).ready()

通过$(document).ready()注册的*处理程序,则会在 DOM完全就绪并可以使用时调用。虽然这也意味着所有元素对脚本而言都是可以访问的,但是,缺不意味着所有关联的文件都已经下载完毕。换句话说,当 HTML下载完成并解析为 DOM树之后,代码就可以运行。

document.ready*和document.load*的区别

1、概念

document.ready:

是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件);

document.load:

是onload,指示页面包含图片等文件在内的所有元素都加载完成。

2、作用

document.ready:

在DOM加载完成后就可以可以对DOM进行*作。

一般情况一个页面响应加载的顺序是,域名解析-加载html-加载js和css-加载图片等其他信息。

那么Dom Ready应该在“加载js和css”和“加载图片等其他信息”之间,就可以*作Dom了。

document.load:

在document文档加载完成后就可以可以对DOM进行*作,document文档包括了加载图片等其他信息。

那么Dom Load就是在页面响应加载的顺序中的“加载图片等其他信息”之后,就可以*作Dom了。

3、加载顺序

document.ready:

文档加载的顺序:域名解析–>加载HTML–>加载J*aScript和CSS–>加载图片等非文字媒体文件。

只要<img>标签加载完成,不用等该图片加载完成,就可以设置图片的属性或样式等。

在原生J*aScript中没有Dom ready的直接方法。

document.load:

文档加载的顺序:域名解析–>加载HTML–>加载J*aScript和CSS–>加载图片等非文字媒体文件。

DOM load在加载图片等非文字媒体文件之后,表示在document文档加载完成后才可以对DOM进行*作,document文档包括了加载图片等非文字媒体文件。

例如,需要等该图片加载完成,才可以设置图片的属性或样式等。

在原生J*aScript中使用onload*。

扩展资料

$(document).ready()和传统的方法<body onload=”load()”>相似,不同的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其他页面元素(例如图片)的加载。

而$(document).ready()所要执行的代码是在DOM元素被加载完成的情况下执行,所以,使用document.ready()方法的执行速度比onload()的方法要快。

J*ascript只有在DOM元素已经定义以后才可以对其执行某种*作,jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的情况下执行。

jQuery*详解之$(document).ready()

在页面加载结束后,浏览器会通过js为dom元素添加*。原生的js中使用 window.onload方法;在JQ中使用$(document).ready()。这个方法在dom载入就绪时对其进行*纵并调用执行它所绑定的函数。

那么它和window.onload有何不同呢?

window.onload是在网页中所有元素加上所有资源++完全加++载到浏览器后才执行。

而$(document).ready()中绑定的*是在 dom完全就绪时就可以被调用,此时对于jQuery来说都是可以被访问的(关联的资源可能并没有被加载完毕)。

举个例子来说,在$(document).ready()中定义了图片的宽高,但由于此时图片还没有被加载完毕,此时的宽高不会生效。要解决这个问题可以使用jQuery中的 load()方法。

load()方法会在元素的onload*中绑定一个处理函数,如果该处理函数绑定给window对象,则会在所有资源加载完毕后触发,如果load绑定在元素上则会在该元素加载完毕后触发。

既然window.onload比较完备为什么还要用jQuery中的$(document).ready()呢?

window.onload*每次只能保存对一个函数的引用,他会覆盖掉之前的函数,所以不能再现有行为上添加新的行为。如果引用了多个js文件,每个都需要window.onload方法就导致编码复杂。

使用$(document).ready()方法能够很好地解决这种问题,每次调用$document.ready()方法都会在现有行为上追加新的行为,这些行为会根据注册顺序依次执行。

本文链接:http://www.yangwm.com/html/87965083.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。