javascript - 检查 body 标记时出现意外的 JavaScript 无限循环

标签 javascript infinite-loop preloader document-body

我打算使用 ASAP 脚本来检查 body 标记是否已加载,但它会导致整个页面卡住。

这里是:

while (!document.body)
    if (document.body) console.log('loaded');

这当然不会在所有情况下都能正常工作,但我很困惑为什么这会变成无限循环并卡住页面。

最佳答案

Javascript 是单线程的。当该循环运行时,不会运行任何其他内容,因此无法加载正文。循环体中没有任何内容会更改 document.body 的值,因此如果在开始时未设置它,则永远不会设置。

关于javascript - 检查 body 标记时出现意外的 JavaScript 无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099857/

相关文章:

c++ - 无限窗口消息循环 - C++

jquery - 在页面加载之前缓慢显示图像

performance - 使用后效性能下降的 activerecord 预加载

javascript - HTML Preloader 应该放在哪里?

javascript - 单击 Bootstrap 之外的任意位置时关闭 Bootstrap 确认

javascript - Flask GET 请求未加载页面

Python:我陷入了无限循环

algorithm - 使用最速爬山函数寻找路径

javascript - Express.js : regex in route

javascript - 如何在数组中更深一层