简单的问题。
DOM 操作调用后被调用的长时间运行的 javascript 函数阻止了操作它的 DOM 有什么特别之处?这是一个例子:
function notify(msg) {
var div = document.createElement("div");
div.textContent = msg;
document.body.appendChild(div);
}
// long-running func
function block() {
var iter = 3e8;
while (iter--)
Math.sqrt(iter);
notify("block() done!");
}
document.body.onclick = function(){
notify("click event!");
block();
};
两者,点击事件!和block() 完成!在长时间运行的函数退出而不是点击事件后同时出现!立即触发并block() 完成!稍后出现。
这是一个演示:http: //jsfiddle.net/bxuNb/1/
if notify("点击事件!"); 替换为alert("click event!"); ,然后它立即响应。这里发生了什么?
谢谢!