3

在浏览器页面上打开模式对话框会停止页面重绘。异步启动的脚本在后台不间断地运行。

我在这个 JSfiddle http://jsfiddle.net/YNbux/中说明了行为。该框在显示时停止其动画,alert()并在警报关闭时跳转到动画中。

这种行为存在于(至少在我的电脑上):

  • 铬 21.0.1180.82
  • 歌剧 12.01
  • Safari 6.0

所以我猜这是预期的行为 - 但会导致动画跳跃,以及其他对最终用户来说似乎是故障的事情。alert()那么为什么要confirm()停止页面重绘呢?

编辑: gif-images 也停止重绘:http: //jsfiddle.net/YNbux/4/

4

1 回答 1

3

这些功能是阻塞功能。您的 JavaScript 将停止执行,直到它们返回。

您的动画和不在后台的动画与您的代码调用没有完全分开alert()。看似异步的代码仍然需要在循环中执行,如果某些代码阻塞了循环,它们将不会自行运行。这对于您的代码的正确操作至关重要。

于 2012-08-30T16:21:52.330 回答