document.ready和window.onload的区别

说明

在Jquery里面,我们可以看到两种写法:

  1. $(function(){})
  2. $(document).ready(function(){})
    结果这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。而window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(document).ready要比window.onload先执行。

ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)。
onload,指示页面包含图片等文件在内的所有元素都加载完成。

document添加一个ready函数

 document.ready = function (callback) {
   ///兼容FF,Google
   if (document.addEventListener) {
     document.addEventListener('DOMContentLoaded', function () {
       document.removeEventListener('DOMContentLoaded', arguments.callee, false);
       callback();
     }, false)
   }
   //兼容IE
   else if (document.attachEvent) {
     document.attachEvent('onreadystatechange', function () {
       if (document.readyState == "complete") {
         document.detachEvent("onreadystatechange", arguments.callee);
         callback();
       }
     })
   }
   else if (document.lastChild == document.body) {
     callback();
   }
 }

验证一下最上面所说的“ready要比onload先执行”

 window.onload = function () {
   alert('onload');

 };

document.ready(function () {
  alert('ready');

});

总结

document.ready:可多次执行,速度比window.onload快
window.onload:只能执行一次,速度比document.ready慢

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容