码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-04-20 13:21:14      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

这篇作为我的新的起点开始吧,发现年纪大了,记性就不好了,有些东西老是记了忘,忘了百度。在学一些新知识的时候也是这样的毛病,总是重复学习,这样效率真心差!所以决定开始认真写博客!

 

本来想封装一个预加载的插件的,在开始写时,才发现自己很多不足。百度上看见这个题目,发现自己不会,所以记下!

 

window.onload    与     jq的 $(document).ready()

 

window.onload 是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源),执行一个函数。

问题:如果图片资源较多,加载时间较长,onload后等待执行的函数需要等待较长时间,所以一些效果可能受到影响

 

$(document).ready() 是当DOM文档树加载完成后执行一个函数(不包含图片,css等),所以比window.onload较快执行

 

那我们来看看$(document).ready()是如何实现的吧

 1     window.onload = function(){
 2         alert(‘onload‘);
 3     }
 4 
 5 
 6     document.ready = function(callback){
 7         //兼容ff,chrome
 8         if(document.addEventListener){
 9             document.addEventListener(‘DomContentLoader‘,function(){
10 
11                 document.removeEventListener(‘DomContentLoader‘,arguments.callee,false);
12                 callback();
13             },false);
14         }
15         //兼容ie
16         else if(document.attachEvent){
17             document.attachEvent(‘onreadystatechange‘,function(){
18 
19                 if(document.readyState == ‘complete‘){
20 
21                     document.detachEvent(‘onreadystatechange‘,arguments.callee);
22                     callback();
23                 }
24             });
25         }
26     }
27 
28     document.ready = function(){
29         alert(‘lalala‘);
30     }

    //最终你会发现会首先弹出‘lalala‘

 

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

标签:

原文地址:http://www.cnblogs.com/wanghao1991/p/5411868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!