【发布时间】:2019-05-29 21:59:38
【问题描述】:
这里我使用循环代码(借鉴What's the equivalent of Java's Thread.sleep() in JavaScript?)来模拟网络延迟来检查我的加载动画效果。但是,第一行也被阻塞了 5 秒。而第二行(日志语句)不是。发生了什么事?
main.innerHTML += '<div id="animation-container"></div>'
console.log("??????????");
var e = new Date().getTime() + (5 * 1000);
while (new Date().getTime() <= e) {}
main.innerHTML += 'real content'
【问题讨论】:
-
我相信这是因为,虽然 DOM(这是页面内容的 JS 内部表示)是同步更新的,但浏览器只有在所有(同步)JS 代码都具有运行完毕。
-
to simulate web latency to check my loading animation effectChrome 的(可能还有 Firefox 的)开发工具内置了这个。不要费心破解你自己的代码来模拟网络延迟,使用开发工具( F12 -> Network -> change “在线”到“3G”)