javascript - 在jQuery源码中,ready方法中的疑惑
PHPz
PHPz 2017-04-11 13:23:46
[JavaScript讨论组]
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", completed, false );

// A fallback to window.onload, that will always work
window.addEventListener( "load", completed, false );

在源码中为什么还要加window.addEventListener( "load", completed, false );这句话。这个是2.0.3的版本,这个版本不是不支持ie78了吗,为什么还要加这句。

还有$(fucntion(){})底层是调用工具方法jQuery.ready, 但是为什么调用的过程要设计的那么复杂,这么做的好处是什么呢。

PHPz
PHPz

学习是最好的投资!

全部回复(1)
ringa_lee

onload事件要等到所有页面元素加载完成才会触发,包括页面上的图片等等。如果网页上有大量的图片,效果可想而知,用户可能在没有看到图片的时候,就已经开始操作页面了,而这时我们的页面还没有初始化,事件还没有注册上,这岂不是太晚了!
除了大家熟知的onload事件之外, 与DOM中的onload事件相近的,我们还有 DOMContentLoaded事件可以考虑, 基于标准的浏览器支持这个事件, 当所有DOM 解析完以后会触发这个事件。

这样,对于基于标准的浏览器来说,我们还可以注册这个事件的处理。这样,我们可能更早地捕获到加载完成的事件。

if (document.addEventListener) {
    // Use the handy event callback
    document.addEventListener("DOMContentLoaded", DOMContentLoaded, false);

    // A fallback to window.onload, that will always work
    window.addEventListener("load", jQuery.ready, false);

}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号