$(document).ready()和window.onload的区别

 

下面我简单记录一下在html中jquery里面的$(document).ready()window.onload的区别,主要有三个不同的方面:

 

  • $(document).ready()比window.onload更快加载
  • $(document).ready()有简写方式,window.onload没有简写
  • $(document).ready()可以重复执行,window.onload只会执行一次

一、

$(document).ready()在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。所以说$(document).ready要比window.onload先执行。

效果动图:

$(document).ready()和window.onload的区别

二、

$(document).ready()的简写格式是:$(function(){}),

window.onload没有简写

三、

同时在同一个HTML页面中使用多个$(document).rady(),函数会一次全部都执行。

同时在同一个HTML页面中使用多个window.onload,只会执行最后一个函数。

效果动图:

两个window.onload加载效果如下:

$(document).ready()和window.onload的区别

上面的效果图可以看到只有第二个onload加载出来了。

两个$(document).ready()加载效果如下:

$(document).ready()和window.onload的区别

可以看到上面效果图两个函数都相应的执行了

注:虽然这里我测试的执行的顺序是没问题的,但是有时候偶尔onload会比ready更早的执行,我也不知道什么原因,希望有大神可以帮我解答一下