我正在加载一个有成千上万个元素的网页。 如何测试节点是否已经完全加载,包括本身和所有子元素,但我不想等到整个页面加载完毕。 例如,让我们来看看这个页面:
<html>
<head>
<script>
var cnt = 0;
var id = setInterval(function test() {
var e = document.querySelector('#content')
if (!e) return;
// how to test is "e" fully loaded ?
if (cnt == e.childNodes.length) {
clearInterval(id);
} else {
cnt = e.childNodes.length;
console.log(cnt);
}
}, 10);
</script>
</head>
<body>
<div id="content">
<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div>
<!-- ... add 30k div elements -->
</div>
</body>
</html>
4448
9448
14448
19448
24948
30000
div.nextSibling != null || documentIsReady
,并使用MutationObserver
观察 DOM 的变化,如果不支持则使用setInterval
。 - t.niese