【发布时间】:2013-08-31 14:39:55
【问题描述】:
在这个页面上,http://docs.angularjs.org/guide/concepts,在“运行时”描述中有一个声明:
$evalAsync 队列用于调度需要在当前堆栈框架之外发生但在浏览器视图呈现之前发生的工作。这通常使用 setTimeout(0) 来完成,但 setTimeout(0) 方法速度慢,并且可能会导致视图闪烁,因为浏览器会在每个事件之后渲染视图。
谁能解释发生在堆栈框架之外,但在浏览器的视图呈现之前是什么意思?
【问题讨论】:
-
在我看来,这不是正确使用的术语。我认为,“......在当前执行线程之外”会更准确。一个“栈帧”是一个函数激活记录;特别是在 JavaScript 中,使用术语“堆栈框架”是有问题的,在这里更是如此。
-
另外,我不确定在浏览器决定重新绘制页面(或页面的一部分)之前是否会运行 0ms 超时。我想在某些浏览器中可能是这样。
标签: javascript angularjs