浏览器在页面加载完毕后,JS通常使用window.onload方法为DOM元素添加事件,而jQuery使用的是$(document).ready()方法。两者功能相似,但也有细微差异,下面简要对比一下两者之间的区别。
window.load | $(document).ready() | |
执行时机 | 必须等待网页中所有内容加载完毕后才能执行(包括图片等) | 只要网页中的DOM结构绘制完毕就执行(与DOM相关的文件此时可能还未下载完毕) |
使用情况 |
1.不能同时执行多个,若编写多个函数只执行最后一个(前面的被覆盖)。 window.onload = function() test1{ alert("function1");}; window.onload = function() test2{ alert("function2");} 最终输出结果为"function2"。 2.如果想实现多个函数的调用,可以创建一个新的函数来包含它们。 window.onload = function(){ test1(); test2(); } |
1.能够同时编写多个函数,按注册顺序执行。 $(document).ready(function(){ test1(); }); $(document).ready(function(){ test2(); }) 两次都输出。 2.如果想实现window.onload一样的功能,调用load()方法。 $(window).load(function(){ //代码 }) |
简化 | 无 |
以下两种形式与$(document).ready()等价,但更简洁。 1.$().ready(function(){ //代码 }); 2.$(function(){ //代码 }); |
全文完,欢迎各位前辈批评指正。