DOMContentLoaded 和 load

DOMContentLoaded
当初始HTML文档被完全加载和解析时,DOMContentLoaded事件被处罚,而无需等待样式表,图形和子框架完成加载。

如果我们希望DOM在用户请求页面后尽可能快的解析,你可以使用javascript异步加载以及优化样式表的加载,否则,并行加载将使页面负载减慢,窃取主要html文档的流量

例子

<script>
  document.addEventListener("DOMContentLoaded", function(event) {
      console.log("DOM开始解析");
  });
</script>

<script>
  document.addEventListener("DOMContentLoaded", function(event) {
      console.log("DOM开始解析");
  });

  for(var i=0; i<1000000000; i++){
      // 这个同步脚本将延迟DOM的解析。
      // 所以DOMContentLoaded事件稍后将启动。
  } 
</script>

兼容性

  兼容到IE9

在IE8中我们可以使用readyStatechange

 

load
当一个资源及其依赖资源已完成加载时,将触发load事件

<script>
  window.addEventListener("load", function(event) {
    console.log("All resources finished loading!");
  });
</script>




onreadystatechange
当一个文档的readyState属性发生更改时,onreadystatechange事件就会触发

// 模拟DOMContentLoaded事件

document.onreadystatechange = function () {
    if (document.readyState === "interactive") {
        initApplication();
    }
}

既然说到这里了,那我们就在说说readyState

document.readyState
一个document的Document.readyState属性描述了文档的加载状态

一个文档的readyState可以使一下之一

   loading 加载

        document仍在加载

   interactive 互动

        文档已经完成加载,文档已经被解析,但是图像,样式表和框架之类的子资源仍然在加载

   complete  完成

        文档和所有子资源已经完成加载。状态表示load事件即将被触发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值