我之因此转载这篇文章,是由于我前两天在写http://hi.baidu.com/see7di/blog/item/c2ba78601de67c5deaf8f8e9.html这个的时候曾经碰到过ready与load的问题.因此转载过来看一下. 在前面小节中曾经介绍过jQuery定义的ready事件和JavaScript默认的load事件。下面咱们来比较这两个事件的区别。为了理解这两个事件的异同,读者应该先了解HTML文档加载的顺序。
DOM文档加载是按顺序执行的,这与浏览器的渲染方式有关系。通常浏览器渲染操做的顺序大体按以下几个步骤来完成。
(1) 解析HTML结构。
(2) 加载外部脚本和样式表文件。
(3) 解析并执行脚本代码。
(4) 构造HTML DOM模型。
(5) 加载图片等外部文件。
(6) 页面加载完毕。
具体说明以下。
1. 执行时机
load事件必须等到网页中全部内容所有加载完毕以后才被执行。若是一个页面中包含了大容量的多媒体文件,则就会出现这种状况:网页文档已经呈现出来,但因为网页数据尚未彻底加载完毕,致使load事件不可以即时被触发。
开发人员习惯把页面初始化设置的脚本都放在load事件处理函数中,因为页面数据没有彻底加载进来,致使网页文档呈现和脚本初始化配置不可以保持同步,从而影响了页面的可用性。
而jQuery的ready事件是在DOM结构绘制完毕以后就执行,也就是说它在外部文件加载以前就被执行了,这样就可以确保网页文档的呈现和脚本初始化设置保持同步。
总之,ready事件先于load事件被激活,若是网页文档中没有加载外部文件,则它们的响应时间基本上是相同的。html
[出处:http://book.51cto.com/art/201012/236487.htm]浏览器