onload()和$ .ready之间的区别?
你可以列出使用jQuery中的onload()
和$(document).ready(function(){..})
函数之间的区别吗?
一旦页面的所有内容被加载,窗口和/或body元素上的load
事件(aka“onload”)就会触发 – 这包括所有的图像,脚本等等。
相比之下,jquery的$(document).ready(...)
函数将使用浏览器特定的机制来确保在加载和访问HTML / XML dom后尽快调用处理程序。 这是页面加载过程中最早的一点,您可以安全地运行脚本,以便访问页面的html dom中的元素。 由于加载辅助资源(如图像等)所需的额外时间,此点比最终load
事件更早到达(通常要早得多)。
两者的主要区别是:
- Body.Onload()事件只有在DOM和相关资源(如图像)被加载后才会被调用,但是jQuery的document.ready()事件将在DOM被加载后被调用,也就是说,它不会等待图像等资源被加载。 因此,一旦加载了HTML结构而不等待资源,jQuery的ready事件中的函数就会被执行。
- 我们可以在页面中有多个document.ready(),但Body.Onload()事件不能。
-
我们可以在一个页面中拥有多个
document.ready()
函数,我们只能拥有一个body的onload函数。 -
document.ready()函数在DOM加载后立即被调用,其中
body.onload()
函数在包含DOM,图像和页面的所有相关资源的页面上加载时调用。
document.ready()
函数与body的onload()
函数有所不同,原因有两个。
- 我们可以在一个页面中拥有多个
document.ready()
函数,我们只能拥有一个body的onload
函数。 -
document.ready()
函数在DOM加载后立即被调用,其中body.onload()
函数在包含DOM,图像和页面的所有相关资源的页面上加载时调用。
一旦HTML DOM加载,Document.ready()函数就会触发。 但是onload()函数会在HTML DOM之后触发,所有的主体内容像加载的图片一样。
body.onload()关心HTML结构和相关资源,因为document.ready()只关心HTML结构。
Onload注意DOM和资源:它检查图像是否加载,脚本是否可以运行等等。
$ .ready只是检查我们是否已经阅读了页面的完整DOM。
请查看此链接以获取更多解释和示例: http : //dailygit.com/difference-between-document-ready-and-window-load-in-jquery/