js加载顺序疑惑:window.load、document.body.load和$(function(){})

        今天在看脚本加载的顺序,想探讨一下window.load和document.body.load和$(function(){})的执行顺序。我也没太研究明白,希望大神帮我一下,指明我前进的方向。我先谢了,我这想探讨的是为什么会出现这种情况,而不是说用哪种方式去实现加载,或者说规避这种情况。

 

        浏览器使用Firefox32.0.3,Chrome39.0.2160.2,内核是31.0.1650.63版本的是360浏览器。我在stackoverflow上也查了一下,没有获得比较满意的答案。
        jquery的 $(function(){}) 首先加载是没有任何疑问的,$(function(){})的执行是在DOM准备好之后执行。
        window.onload是在页面加载完成之后,包括加载完各种js、css、image资源才执行。
        document.body.load或者直接在body标签上加onload()方法,是在页面加载到body的时候执行的。
        也有可能我理解不正确,请批评指正。
         在这三款浏览器中发现有些不同的现象。
         代码1:
        
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test2</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
window.οnlοad=function(){
console.log("window onload");
}
function init(){
console.log("body init");
}
$(function(){
console.log("dom ready="+$('#span').html());
})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
</body>

</html>
    测试结果:
Firefox
Chrome31.0.1650.63
Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
dom ready=I love Internet!
body init
body init
window onload
 
 
body init

代码2:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test21</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>

function init(){
console.log("body init");
}
$(function(){
console.log("dom ready="+$('#span').html());
})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
<script>window.οnlοad=function(){
console.log("window onload");
}</script>
</body>

</html>
 测试结果:
Firefox
Chrome31.0.1650.63Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
 dom ready=I love Internet!
window onload
window onload
window onload

代码3:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test3</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
/*window.οnlοad=function(){
console.log("window onload");
}*/
$(window).load(function(){
console.log("window onload!");
})
function init(){
console.log("body init");
}
$(function(){
console.log("dom ready="+$('#span').html());
})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
</body>

</html>
 测试结果:
Firefox
Chrome31.0.1650.63
Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
 dom ready=I love Internet!
window onload!
window onload!
window onload!
body init
body init
body init

代码4:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test4</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
/*window.οnlοad=function(){
console.log("window onload");
}*/
function init(){
//setTimeout(function(){
console.log("body init");
// },1000);
}
$(function(){
console.log("dom ready="+$('#span').html());
$(window).load(function(){
console.log("window onload!");
})
/*window.οnlοad=function(){
console.log("window onload");
}*/
})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
</body>

</html>
 测试结果:
Firefox
Chrome31.0.1650.63
Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
 dom ready=I love Internet!
body init
body init
body init
window onload!
window onload!
window onload!

代码5:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test5</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
/*window.οnlοad=function(){
console.log("window onload");
}*/
function init(){
//setTimeout(function(){
console.log("body init");
// },1000);
}
$(function(){
console.log("dom ready="+$('#span').html());
/*$(window).load(function(){
console.log("window onload!");
})*/
window.οnlοad=function(){
console.log("window onload");
}
})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
</body>

</html>
 测试结果:
Firefox
Chrome31.0.1650.63Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
 dom ready=I love Internet!
window onload
window onload
window onload

代码6:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test5</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
/*window.οnlοad=function(){
console.log("window onload");
}*/
function init(){
//setTimeout(function(){
console.log("body init");
// },1000);
}
$(function(){
console.log("dom ready="+$('#span').html());
$(window).load(function(){
console.log("jquery window onload!");
})
window.οnlοad=function(){
console.log("window onload");
}
})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
</body>

</html>
 测试结果:
Firefox
Chrome31.0.1650.63Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
 dom ready=I love Internet!
window onload
jquery window onload!
jquery window onload!
jquery window onload!
window onload
window onload

代码7:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test7</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
/*window.οnlοad=function(){
console.log("window onload");
}*/
function init(){
//setTimeout(function(){
console.log("body init");
// },1000);
}
$(function(){
console.log("dom ready="+$('#span').html());
window.οnlοad=function(){
console.log("window onload");
}
$(window).load(function(){
console.log("jquery window onload!");
})

})
</script>
</head>
<body οnlοad="init()">
<span id="span">I love Internet!</span>
</body>

</html>
 测试结果:
Firefox
Chrome31.0.1650.63Chrome39.0.2160.2
dom ready=I love Internet!
dom ready=I love Internet!
 dom ready=I love Internet!
window onload
window onload
window onload
jquery window onload!
jquery window onload!
jquery window onload!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值