`

事件DOMContentLoaded和load的区别

阅读更多

        事件DOMContentLoaded和load的区别是,触发的时机不一样,先触发DOMContentLoaded事件,后触发load事件。

        DOM文档加载的步骤为:

        1.解析HTML结构。

        2.加载外部脚本和样式表文件。

        3.解析并执行脚本代码。

        4.DOM树构建完成。//DOMContentLoaded

        5.加载图片等外部文件。

        6.页面加载完毕。//load

        在第4步,会触发DOMContentLoaded事件;在第6步,触发load事件。

        用原生js可以这么写:

// 不兼容老的浏览器,兼容写法见[jQuery中ready与load事件](http://www.imooc.com/code/3253),或用jQuery
document.addEventListener("DOMContentLoaded", function() {
   // ...代码...
}, false);

window.addEventListener("load", function() {
    // ...代码...
}, false);

        用jQuery这么写

// DOMContentLoaded
$(document).ready(function() {
    // ...代码...
});

//load
$(document).load(function() {
    // ...代码...
});

        总之,load事件:页面资源全部载入(JS,CSS,图片等全部加载完)触发;ready事件:原生无ready事件,只有DOMContentLoaded事件。jQuery中的ready事件当DOM加载完成触发,此时引用的资源未必已加载完成。所以,ready事件总是先于load事件触发。

分享到:
评论

相关推荐

    jquery中ready()函数执行的时机和window的load事件比较

    jquery的ready()实现的是 DOMContentLoaded 事件,DOMContentLoaded与window load事件的区别 简单的说ready()是在文档加载完成就会触发,此时图片等资源可能还没有完全加载, load是在所有资源都加载完成后才会触发 看...

    javascript ready和load事件的区别示例介绍

    DOMContentLoaded 事件介于 ready 和 load 之间,它在 DOM 树构建完成后立即触发,但不等待样式表、图片和子框架的加载完成。因此,DOMContentLoaded 事件的触发时间会比 ready 事件稍晚,但又远早于 load 事件。在...

    Javascript封装DOMContentLoaded事件实例

    最近在写一个Javascript的框架,刚把DOMContentLoaded事件封装好,略带小兴奋,把开发过程中遇到的原理和兼容性问题做篇笔记,省的忘记到处找。 我们在写js代码的时候,一般都会添加[removed]事件,主要是为了在DOM...

    lazyload.js实现图片异步延迟加载

    `lazyload.js`还提供了`load`和`error`事件,可以监听图片加载成功和失败: ```javascript lazyLoadInstance.on('load', function(event) { console.log('Image loaded:', event.target); }); lazyLoadInstance....

    JS、CSS以及img对DOMContentLoaded事件的影响

    MDN Web Docs提供了更直观的解释:DOMContentLoaded事件会在文档被完全加载和解析后触发,而不考虑样式表、图像和子框架是否完成加载。然而,样式表加载会阻塞脚本执行,这意味着如果一个`<script>`标签紧跟在一个`...

    图片延迟加载,lazyload.js使用实例

    1. **监听滚动事件**:`lazyload.js`通过监听浏览器的滚动事件,判断图片是否进入可视区域。 2. **判断图片位置**:当图片进入可视区域时,计算图片距离视口顶部的距离与图片高度的总和,与视口的高度进行比较。 3. ...

    js lazyload实现网页图片延迟加载特效

    window.addEventListener('DOMContentLoaded', lazyLoad); ``` 3. **优化**:可以考虑添加 throttle 或 debounce 函数来减少滚动事件的触发频率,避免性能问题。同时,对于图片已经出现在视口但尚未加载的情况,...

    js页面生命周期1

    本文将深入探讨其中的四个关键事件:DOMContentLoaded、load、beforeunload以及unload。 1. DOMContentLoaded事件: 这个事件标志着浏览器已经解析完HTML文档,并构建了DOM树,但不包括外部资源如图片、字体或异步...

    LazyLoad 图片懒加载

    - **兼容性**:正如描述中提到的,这个实现应该兼容IE6+,这意味着它可能使用了JavaScript的跨浏览器解决方案,如`attachEvent`和`DOMContentLoaded`事件来确保在所有浏览器中正常工作。 - **初始加载**:为了防止...

    javascript事件综合查询

    部分事件是异步的,如`DOMContentLoaded`和`load`事件,它们在文档加载完成后触发,而`click`这类事件则是同步的。 九、事件源与事件目标 事件源(event.target)是实际触发事件的元素,而事件当前目标(event....

    Javascript 事件 一览表

    3. DOM2级事件处理程序:使用`addEventListener`和`removeEventListener`方法添加和移除事件监听器,支持事件冒泡和捕获,如`element.addEventListener('click', myFunction)`。 三、事件传播 1. 事件冒泡:事件从...

    javascript事件列表解说

    首先,JavaScript事件分为两类:浏览器事件和DOM(文档对象模型)事件。浏览器事件主要与用户的交互有关,如点击、滚动、提交表单等;DOM事件则关注于文档对象的状态改变,例如元素的加载、改变或删除。 1. 鼠标...

    一个做的相当漂亮的LOAD进度条.rar

    2. **JavaScript事件监听**:进度条的启动和结束可能与页面的`load`、`DOMContentLoaded`或自定义事件相关联,以便在正确的时间显示加载状态。 3. **AJAX异步加载**:如果进度条与数据加载同步,可能涉及到AJAX请求...

    javaScript中常用事件

    事件处理通常包括事件触发、事件传播和事件处理函数三个部分。在JavaScript中,事件可以分为鼠标事件、键盘事件、表单事件、DOM事件等多种类型。 二、鼠标事件 1. `click`:鼠标单击事件,常用于按钮点击等操作。 2...

    javascript事件大集合

    - **文档和窗口事件**:`load`(页面加载完成)、`unload`(页面卸载)、`resize`(窗口大小改变)、`scroll`(页面滚动)。 - **其他事件**:`touchstart`、`touchmove`、`touchend`(触摸屏操作);`...

    页面图片实现Lazyload 延迟加载效果

    这可以放在`<script>`标签中,或者使用`window.onload`或`DOMContentLoaded`事件。 ```javascript window.onload = function() { var lazyLoad = new CJL(); lazyLoad.init(); }; ``` 3. **设置图片**:确保所有...

    JS操作DOM元素属性和方法大全

    10. **DOMContentLoaded与load事件** - `DOMContentLoaded`事件:当DOM解析完成,但资源如图片、样式表尚未加载完时触发。 - `load`事件:整个页面加载完成,包括所有资源都加载完毕时触发。 通过以上这些DOM操作...

    JavaScrpt DOMscripting编程艺术

    9. **DOMContentLoaded和load事件**:DOMContentLoaded事件在DOM加载完成时触发,而load事件则在整个页面(包括资源)完全加载后触发。 10. **创建新元素**:使用`document.createElement()`创建新的DOM元素,然后...

Global site tag (gtag.js) - Google Analytics