本文通过对比表格详细解析window.onload与$(document).ready()在页面加载完成时机、代码编写个数限制及简写方式上的核心区别,帮助开发者根据实际需求选择合适的事件注册方法。
window.onload与jQuery ready核心区别
当浏览器完成DOM加载后,JavaScript会介入为DOM元素绑定事件,此时通常采用window.onload()方法进行处理。
若使用jQuery库,则推荐采用$(document).ready()方法。以下将具体阐述这两种方式的关键差异。
| window.onload() | $(document).ready() | |
| 执行时机 | 在页面所有元素(包括图片,引用文件)加载完后执行。 |
页面中所有HTML DOM,CSS DOM结构加载完之后就会执行,其他图片可能没有加载完. 如果想要网页所有内容(包括图片等)加载完毕,再注册事件,使用$(window).load(function); 等价于window.onload() |
| 编写个数 |
不能同时写多个,后面的将会覆盖前面的。ex: window.onload=function(){ alert("A"); } window.onload=function(){ alert("B"); } 结果会执行“B” 如果想要顺序执行alert("A")和alert("B")需写成 window.onload=function(){ alert("A"); alert("B"); } |
可以同时写多个 |
| 简写 | 无 |
$(document).ready(function(){ //to do; }); 可写成 $().ready(function(){ //$()不带参数默认是document //to do; });或 $(function(){ //to do; });
|