美文网首页
window.onload 和 .ready()

window.onload 和 .ready()

作者: 大淀桑浮不起來 | 来源:发表于2016-04-26 21:14 被阅读89次

Jquery$(document).ready()是什么意思?和window.onload的区别? 还有其他什么写法或者替代方法?

$(document).ready()的意思:

在DOM加载完之后执行一个函数(这里面的DOM加载完不代表全部文件加载完,例如图片文件,虽然图的src的地址加载好了,但是图本身还没到);

  • 有时候JavaScript写在了最前面,要操作一个DOM,可是下面的DOM还未生成完毕,就会报错,因为找不到,加$(document).ready()就是卡在 DOM加载完毕 ,剩余资源还未加载完成这段时间内,进行所有其它事件绑定及运行其它 jQuery 代码;

window.onload的区别:

  • 1.执行时间
    window.onload是在DOM加载完成 + DOM相关的文件下载完成 之后再执行一个函数
    $(document).ready()是在DOM加载完之后执行一个函数
    $(document).ready()要比window.onload先执行;有时候页面还没有完全加载完毕而用户已经在操作页面,在技术上很多情况下,只要DOM已完全加载好了,JS就可以运行去操作DOM了,没必要等到全部加载完成,所以用$(document).ready()来提前,但是当使用的JS依赖 CSS 属性值时,或者需要在元素被加载之后才能使用时(例如,取得图片的大小需要在图片被加载完后才能知道),就需要将这样的JS放到load事件中,以免因为贪图快而带来麻烦。
  • 2.能够添加的数量
    window.onload不能同时编写多个,因为我查看W3C的时候,window.onload是一种原生的DOM的事件,决定了在window上只能添加一个,后续的会覆盖掉前面的。
    $(document).ready()可以同时编写多个,我查看jQuery中文档,他是这么介绍的.ready()方法只能被匹配当前文档的jQuery对象调用,也就是说他是jQuery的方法,本质是一个函数,就可以执行多次。
  • 3.能否简写
    $(document).ready()可以简写
    window.onload 不能简写
    下面是$(document).ready()的简写
$(document).ready(handler)
$(handler)
$().ready(handler) //这种被不推荐

相关文章

网友评论

      本文标题:window.onload 和 .ready()

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