美文网首页
$.ready()实现原理,window.onload的区别

$.ready()实现原理,window.onload的区别

作者: 蛋黄肉 | 来源:发表于2017-09-25 21:49 被阅读41次

有一次面试被问到$.ready()的作用,答:当DOM加载完毕时触发。
接着问$.ready()与window.onload的区别是什么?答:不知道...
再问$.ready()的实现原理是什么?答:不知道...
所以写篇博客压压惊

$.ready()与window.onload的区别

  1. 加载时间不同
    • window.onload要等到所有东西都加载完毕才开始执行
    • $.ready()是等到DOM构建完成就开始执行
    • 浏览器构造网页的过程请看这篇文章的第一部分
  2. 可以出现的次数不同
    • window.onload在一个网页中只能出现一次,多次不会都执行
    • $.ready()可以在一个网页中多次出现,并顺序执行
    • 另外,jquery采用的是发布订阅模式,这篇文章用了入门的例子说明了前端常用的设计模式
  3. 不是什么大区别,$.ready()的简化写法可以写成$(),而window.onload没有简化写法。

$.ready()的实现原理

具体的可以看这篇文章,代码写的很详细
jquery ready方法实现原理 内部原理
$.ajax基于原生的DOMContentLoaded,mdn中是这样描述的

当初始HTML文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架完成加载。另一个不同的事件 load
应该仅用于检测一个完全加载的页面。 在使用 DOMContentLoaded 更加合适的情况下使用 load
是一个非常流行的错误,所以要谨慎。

相关文章

网友评论

      本文标题:$.ready()实现原理,window.onload的区别

      本文链接:https://www.haomeiwen.com/subject/djxjextx.html