1

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

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

SEE DEMO(在任何浏览器中测试,然后是 Firefox)

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

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

4

2 回答 2

0

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

预期的行为所期望的,因为您在其他 3 个浏览器中观察到了它。它没有任何意义。

于 2013-06-07T15:52:19.893 回答
0

我引用bobince:

总之,在大多数用户看来,JavaScript 在大多数情况下都具有严格的事件驱动单线程执行。实际上,它没有这样的东西。目前尚不清楚其中有多少只是一个错误,有多少是经过深思熟虑的设计,但如果你正在编写复杂的应用程序,尤其是跨窗口/框架脚本的应用程序,它很有可能会咬你——而且间歇性地,难以调试的方法。

来自这个主题:JavaScript 是否保证是单线程的?

于 2013-06-07T16:13:50.727 回答