window.onload 与$(document).ready()的区别

本文详细解析jQuery中的$(document).ready()与window.onload的区别,包括执行时间、编写数量及简化写法,通过实例展示两者执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们直接看看stackoverflow上的大拿是怎么回答的,回答的比较简单,一看就懂:

The ready event occurs after the HTML document has been loaded, while the onload event occurs later, when all content (e.g. images) also has been loaded.
The onload event is a standard event in the DOM, while the ready event is specific to jQuery. The purpose of the ready event is that it should occur as early as possible after the document has loaded, so that code that adds functionality to the elements in the page doesn’t have to wait for all content to load.

链接为:http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready

Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的。
1.执行时间

    window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
    $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 

2.编写个数不同

     window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
     $(document).ready()可以同时编写多个,并且都可以得到执行

3.简化写法

     window.onload没有简化写法
     $(document).ready(function(){})可以简写成$(function(){});

另外再总结一下
$(window).load(function(){});,
以及
function(function(){})(jQuery);



<html>
<head>
<script src="jquery-1.9.1.min.js"></script>
<script>

    (function(){
        alert("在DOM加载前执行");

    })(jQuery);

    window.onload=function(){
        alert("我是第一个window.onload()");
    };

    //只执行最后一个onload
    window.onload=function(){
        alert("我是第二个window.onload()");
    };


    //$(window).load按顺序执行
    $(window).load(function(){
        alert("我是一个$(window).load()");
    });

    $(window).load(function(){
        alert("我是二个$(window).load()");
    });



    $(function(){

        alert("在DOM加载完毕时马上执行");
    });

</script>
</head>
<body>
<p>this is paragraph </p>
</body>
</html>

请大家复制后引入自己已经下载好的jQuery版本,从alert()方法的输出我们已经可以看出window.onload、 (document).ready() (window).load以及function(function(){})(jQuery);的执行顺序了。需要注意的是:window.onload与 (window).loadwindow.onload (window).load则是按顺序执行每一个绑定的事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值