在JavaScript中,监听页面渲染完成事件可以通过多种方式实现,以下是一些常见的方法和相关概念:
DOMContentLoaded
事件document.addEventListener('DOMContentLoaded', function() {
console.log('DOM fully loaded and parsed');
});
window.onload
事件window.onload = function() {
console.log('All resources fully loaded');
};
requestAnimationFrame
结合 performance.timing
requestAnimationFrame
在浏览器下一次重绘之前执行代码,并结合performance.timing
判断页面渲染完成。function checkRenderComplete() {
if (performance.timing.loadEventEnd > 0) {
console.log('Page render complete');
} else {
requestAnimationFrame(checkRenderComplete);
}
}
requestAnimationFrame(checkRenderComplete);
MutationObserver
let observer = new MutationObserver(function(mutationsList, observer) {
let allElementsLoaded = true;
document.querySelectorAll('img').forEach(img => {
if (!img.complete) {
allElementsLoaded = false;
}
});
if (allElementsLoaded) {
console.log('All elements loaded');
observer.disconnect();
}
});
observer.observe(document, { childList: true, subtree: true });
<head>
标签中,可能会因为DOM未加载完成而无法正确执行。可以将脚本放在<body>
底部或者使用DOMContentLoaded
事件。window.onload
确保所有资源加载完成。MutationObserver
来监听DOM变化。通过以上方法,可以有效地监听页面渲染完成事件,并根据具体需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云