在原生js开发的时候,需要对页面进行动态处理是,会经常用到window.onload
和document.onDOMContentLoaded
这两个事件。
今天就浅议一下两个事件加载函数:
相同之处:
两事件的作用都是:当我们给一些元素绑定函数时,会出现绑定处理函数运行完了,但是元素还没有加载的情况。而window.onload
事件和document.onDOMContentLoaded
事件就是为了避免这种情况。
虽然都是一样的目的,但两者区别很明显!
window.onload
- 当
window.事件
触发时,页面上所有的DOM
,样式表,脚本,图片,flash
都已经加载完成了。 -
window.onload
不能同时编写多个,如果有多个window.onload
方法,只会执行一个。
页面所有资源加载完成
window.onload = function(){
console.log('window loaded')
}
document.onDOMContentLoaded
- 当document.onDOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。
两者触发时机不同,window.触发的更晚。 -
jQuery
的$(document).ready
就是利用了DOMContentLoaded
来实现的,但是DOMContentLoaded
在IE9以下不支持,需要对IE9以下版本进行兼容处理。
DOM结构解析完成
document.addEventListenner("DOMContentLoaded",function(){
console.log("DOMContentLoaded")
})
总结 :
document.onDOMContentLoaded
加载机制更加合理。因为大多数客户可以允许图片,flash
等的加载。
网友评论