警告对话框不会在Firefox上使用超时阻塞UI

alert dialog not blocking UI on Firefox using a timeout

本文关键字:超时 UI 对话框 Firefox 警告      更新时间:2023-09-26

我已经搜索过了,但是没有找到任何关于Firefox中这种特定行为的文档。

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

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

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

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

据我所知,没有呈现标准这样的东西。因此,你不应该期望所有的浏览器呈现相同。

预期行为是你期望的,因为你在其他3个浏览器中观察到它。

我引用了bobince的话:

总之,JavaScript在大多数情况下对大多数用户来说是有一个严格的事件驱动的单线程执行。实际上,它没有这样的事情。目前尚不清楚这其中有多少只是一个bug多少是刻意设计的,但如果你写的是复杂的应用程序,特别是跨窗口/框架脚本程序,有只要有机会,它就会咬你一口——而且是断断续续的、难以调试的方式。

从这个主题:JavaScript保证是单线程的吗?