onload()和$ .ready之间的区别?

Ven*_*kat 51 javascript jquery onload

你能列出使用jQuery 的区别onload()$(document).ready(function(){..})功能吗?

Lee*_*Lee 71

load一旦加载了页面的所有内容,窗口和/或主体元素上的事件(也就是"onload")将会触发- 这包括所有图像,脚本等......所有内容.

相反,jquery的$(document).ready(...)函数将使用特定于浏览器的机制来确保在加载和访问HTML/XML dom后尽快调用您的处理程序.这是页面加载过程中最早的一点,您可以安全地运行打算访问页面的html dom中的元素的脚本.load由于加载辅助资源(如图像等)所需的额外时间,此点比最终事件更早(通常更早)到达.

  • 如果李的解释对你来说不够清楚,请看看这个定义:http://www.codedigest.com/FAQ/40-What-is-the-difference-between-Body-OnLoad-and-jQuery-document -ready%28%29事件的.aspx (3认同)
  • @Unbreakable - 如果你的脚本只需要操作元素(动态地将项添加到div,设置事件监听器等),你可以在document.ready中完成,它会在*DOM*完全加载后立即运行.如果你想做影响图像的事情(例如,在.width()和.height()上进行计算等)和其他辅助资源你应该使用window.onload.并注意到Bhanu Prakash Pandey的回答,你只能有一个onload(你必须把所有你需要的东西放在那里)但你可以在同一页面上有多个document.ready调用. (2认同)

Bha*_*dey 19

两者之间的主要区别是:

  1. 只有在DOM和相关资源(如图像加载)之后才会调用Body.Onload()事件,但是一旦DOM被加载就会调用jQuery的document.ready()事件,即它不会等待像图像这样的资源被加载.因此,一旦加载HTML结构而不等待资源,jQuery就绪事件中的函数将被执行.
  2. 我们可以在页面中有多个document.ready()但Body.Onload()事件不能.