DOMContentLoaded 与 load 的区别
DOM 文档的加载步骤
- 解析 HTML 结构
- 加载外部脚本和样式表文件
- 解析并执行脚本
- 构建 HTML DOM 模型 // DOMContentLoaded
- 加载外部资源文件(image 等)
- 页面渲染完成 // load
DOMContentLoaded(对应 jQuery 中的 $(document).ready())
MDN: 当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架的完成加载
load(对应 jQuery 中的 $(document).load())
页面上所有的资源(图片,音频,视频等)被加载以后才会触发 load 事件。所以 load 所需要的时间必然大于等于 DOMContentLoaded 所需要的时间。
HTML 页面的生命周期
主要有三个重要的事件
- DOMContentLoaded,DOM 已经构建好,可以对 DOM 节点进行操作
document.addEventListener('DOMContentLoaded', cb)
- load,所有资源加载完毕,可以对资源进行一系列操作,比如获取图片宽高等~
window.onload = function() {}
- beforeunload/unload(基本不会用到),当浏览器窗口关闭或者刷新时,会触发 beforeunload 事件。当前页面不会直接关闭,可以点击确定按钮关闭或刷新,也可以取消关闭或刷新。我们可以检查用户是否保存了修改,并提示他是否确定离开当前页面
window.onbeforeunload = function() {return "There are unsaved changes. Leave now?";}
相关知识点:document.readyState