如何知道DOM的第一个就绪状态

时间:2012-12-13 11:41:44

标签: javascript html dom document-ready

我正试图获得DOM的第一个就绪状态。第二,第三等并不是我的有趣,而是第一个。是否有任何技巧可以获得DOM的第一个就绪状态?

$(document).ready(function() {
  // is it the first ready state?
});

2 个答案:

答案 0 :(得分:3)

有4个readyState可能的值:

  • 未初始化 - 尚未开始加载
  • loading - 正在加载
  • interactive - 已加载足够且用户可以与之交互
  • 完成 - 满载

要查看它的值,请使用以下代码:

document.onreadystatechange = function () {
    if (document.readyState === YourChoice) {
        // ...
    }
}

我无法抓住uninitialized readyState。 (但为什么我需要它?)

如果您需要一个侦听器来完全加载DOM,请使用:

document.addEventListener('DOMContentLoaded', YourListener);

document.addEventListener('load', YourListener);

甚至

window.onload = YourListener;

for jquery:

$(document).on("DOMContentLoaded", function() { });

$(document).on("load", function() { });

$(window).on("load", function() { });

答案 1 :(得分:1)

啊,你正在使用jQuery。看看the docs:只有一个ready事件!我永远不会开火多次。 Internally,甚至可以使用Promise进行处理,因此无法多次触发。