美文网首页
DOMContentLoaded

DOMContentLoaded

作者: 小雞雞炖蘑菇 | 来源:发表于2017-03-17 12:45 被阅读0次

DOM文档通常加载的步骤:
1.解析HTML结构。
2.加载外部脚本和样式表文件。
3.解析并执行脚本代码。
4.DOM树构建完成。//DOMContentLoaded
5.加载图片等外部资源。
6.页面加载完毕。//load
js代码执行的前提是它所需要的DOM必须渲染完毕,要不就会报错;使用window.onload时就是在页面完全加载完毕(包括图片等资源)后就执行,由于图片加载比较慢,致使脚本执行延后,拉低用户体验;而js脚本的执行不依赖图片等资源的加载,就是说在DOM树构建完成就可以执行;
此时给document绑定一个事件就可以了,如下:

document.addEventListener('DOMContentLoaded',function(){
    //需要执行的代码;
  },false)

而IE低版本浏览器又没有这个事件,而所有浏览器均支持的onreadystatechange 事件能辨识readyState 属性的改变,在readyState 属性为complete时,DOM树构建完毕,这样就可以封装一个兼容低版本的框架

function DOMReady(fn){
    if(document.addEventListener){   //高级浏览器支持
        document.addEventListener('DOMContentLoaded',function(){
            fn && fn();
        },false)
    }else{                    //低版本浏览器使用
        document.onreadystatechange = function(){
            if(document.readyState == 'complete'){
                fn && fn();
            }
        };
    }
}

相关文章

网友评论

      本文标题:DOMContentLoaded

      本文链接:https://www.haomeiwen.com/subject/polenttx.html