事件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()实现的是 DOMContentLoaded 事件,DOMContentLoaded与window load事件的区别 简单的说ready()是在文档加载完成就会触发,此时图片等资源可能还没有完全加载, load是在所有资源都加载完成后才会触发 看...
DOMContentLoaded 事件介于 ready 和 load 之间,它在 DOM 树构建完成后立即触发,但不等待样式表、图片和子框架的加载完成。因此,DOMContentLoaded 事件的触发时间会比 ready 事件稍晚,但又远早于 load 事件。在...
最近在写一个Javascript的框架,刚把DOMContentLoaded事件封装好,略带小兴奋,把开发过程中遇到的原理和兼容性问题做篇笔记,省的忘记到处找。 我们在写js代码的时候,一般都会添加[removed]事件,主要是为了在DOM...
`lazyload.js`还提供了`load`和`error`事件,可以监听图片加载成功和失败: ```javascript lazyLoadInstance.on('load', function(event) { console.log('Image loaded:', event.target); }); lazyLoadInstance....
MDN Web Docs提供了更直观的解释:DOMContentLoaded事件会在文档被完全加载和解析后触发,而不考虑样式表、图像和子框架是否完成加载。然而,样式表加载会阻塞脚本执行,这意味着如果一个`<script>`标签紧跟在一个`...
1. **监听滚动事件**:`lazyload.js`通过监听浏览器的滚动事件,判断图片是否进入可视区域。 2. **判断图片位置**:当图片进入可视区域时,计算图片距离视口顶部的距离与图片高度的总和,与视口的高度进行比较。 3. ...
window.addEventListener('DOMContentLoaded', lazyLoad); ``` 3. **优化**:可以考虑添加 throttle 或 debounce 函数来减少滚动事件的触发频率,避免性能问题。同时,对于图片已经出现在视口但尚未加载的情况,...
本文将深入探讨其中的四个关键事件:DOMContentLoaded、load、beforeunload以及unload。 1. DOMContentLoaded事件: 这个事件标志着浏览器已经解析完HTML文档,并构建了DOM树,但不包括外部资源如图片、字体或异步...
- **兼容性**:正如描述中提到的,这个实现应该兼容IE6+,这意味着它可能使用了JavaScript的跨浏览器解决方案,如`attachEvent`和`DOMContentLoaded`事件来确保在所有浏览器中正常工作。 - **初始加载**:为了防止...
部分事件是异步的,如`DOMContentLoaded`和`load`事件,它们在文档加载完成后触发,而`click`这类事件则是同步的。 九、事件源与事件目标 事件源(event.target)是实际触发事件的元素,而事件当前目标(event....
3. DOM2级事件处理程序:使用`addEventListener`和`removeEventListener`方法添加和移除事件监听器,支持事件冒泡和捕获,如`element.addEventListener('click', myFunction)`。 三、事件传播 1. 事件冒泡:事件从...
首先,JavaScript事件分为两类:浏览器事件和DOM(文档对象模型)事件。浏览器事件主要与用户的交互有关,如点击、滚动、提交表单等;DOM事件则关注于文档对象的状态改变,例如元素的加载、改变或删除。 1. 鼠标...
2. **JavaScript事件监听**:进度条的启动和结束可能与页面的`load`、`DOMContentLoaded`或自定义事件相关联,以便在正确的时间显示加载状态。 3. **AJAX异步加载**:如果进度条与数据加载同步,可能涉及到AJAX请求...
事件处理通常包括事件触发、事件传播和事件处理函数三个部分。在JavaScript中,事件可以分为鼠标事件、键盘事件、表单事件、DOM事件等多种类型。 二、鼠标事件 1. `click`:鼠标单击事件,常用于按钮点击等操作。 2...
- **文档和窗口事件**:`load`(页面加载完成)、`unload`(页面卸载)、`resize`(窗口大小改变)、`scroll`(页面滚动)。 - **其他事件**:`touchstart`、`touchmove`、`touchend`(触摸屏操作);`...
这可以放在`<script>`标签中,或者使用`window.onload`或`DOMContentLoaded`事件。 ```javascript window.onload = function() { var lazyLoad = new CJL(); lazyLoad.init(); }; ``` 3. **设置图片**:确保所有...
10. **DOMContentLoaded与load事件** - `DOMContentLoaded`事件:当DOM解析完成,但资源如图片、样式表尚未加载完时触发。 - `load`事件:整个页面加载完成,包括所有资源都加载完毕时触发。 通过以上这些DOM操作...
9. **DOMContentLoaded和load事件**:DOMContentLoaded事件在DOM加载完成时触发,而load事件则在整个页面(包括资源)完全加载后触发。 10. **创建新元素**:使用`document.createElement()`创建新的DOM元素,然后...