警报对话框没有使用超时阻止Firefox上的UI

时间:2013-06-07 15:36:49

标签: javascript alert

我已搜索过但无法在Firefox中找到有关此特定行为的任何文档。

如果我在Firefox中的超时或间隔函数内包含对alert方法的调用,则不会阻止UI。在我测试过的所有其他浏览器中(chrome / IE / safari),会出现模式警报对话框的预期行为。

SEE DEMO (test it in any browser, then Firefox)

setTimeout(function () {
    alert("If you wait enough in Firefox, the UI is updated!");
}, 0);

是否有关于此特定行为的文档?

2 个答案:

答案 0 :(得分:0)

据我所知,没有渲染标准这样的东西。因此,您不应期望所有浏览器都以相同的方式呈现。

预期行为是您期望的,因为您在其他3个浏览器中观察到了它。它毫无意义。

答案 1 :(得分:0)

我在引用bobince:

  

总之,大多数时候,大多数用户都会看到JavaScript   有一个严格的事件驱动的单线程执行。实际上,它   没有这样的事情。目前尚不清楚这有多少只是一个错误   以及多少刻意设计,但如果你写得很复杂   应用程序,特别是跨窗口/框架脚本的应用程序,有   它有可能咬你 - 并且间歇性地,难以调试   方式。

从这个主题:Is JavaScript guaranteed to be single-threaded?