下面我简单记录一下在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()的简写格式是:$(function(){}),
window.onload没有简写
三、
同时在同一个HTML页面中使用多个$(document).rady(),函数会一次全部都执行。
同时在同一个HTML页面中使用多个window.onload,只会执行最后一个函数。
效果动图:
两个window.onload加载效果如下:
上面的效果图可以看到只有第二个onload加载出来了。
两个$(document).ready()加载效果如下:
可以看到上面效果图两个函数都相应的执行了
注:虽然这里我测试的执行的顺序是没问题的,但是有时候偶尔onload会比ready更早的执行,我也不知道什么原因,希望有大神可以帮我解答一下