javascript中$(document).ready()函数的实现
问题描述:
我是javascript的新手。我想知道,如果下面的代码是$(文件)。就绪(INIT)
<html>
<head>
<script type="text/javascript">
function documentReady(){
while(document.readyState != "interactive"){
//do nothing
}
init();
}
function init(){
}
</script>
</head>
<body>
<!-- other html elements -->
<script> documentReady(); </script>
</body>
</html>
我完全理解下面的代码是正确执行的有效执行...
document.onreadystatechange = function() {
if (document.readyState == "interactive") {
init();
}
}
答
号只需测试它是一个TRIV证明不是的证明。它将浏览器锁定在无限循环中,阻止所有进一步的渲染并防止文档进入准备好状态。
答
有几种。让我为你做一个快速的。
var onDomLoaded = function() {
console.log("DOM is ready");
}
document.addEventListener('DOMContentLoaded', onDomLoaded, false);
这是jQuery(本质上)所做的。如果这个失败了,那么会有很多后备。
我测试了一下,似乎没有正常工作(甚至没有工作)。
否浏览器和DOM主要是基于事件的。您不必轮询某些元素的状态,而是注册一个事件处理程序并等待您的回调被调用。这正是jQuery的$(document).ready()所做的。 – haim770
http://*.com/a/9899701/1190388 – hjpotter92
嘿,谢谢你清除我的怀疑! –