为什么JavaScript对话框(警告,确认)会停止重绘页面?

时间:2012-08-30 16:19:52

标签: javascript browser

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

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

此行为存在于(至少在我的计算机上):

  • Chrome 21.0.1180.82
  • Opera 12.01
  • Safari 6.0

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

修改 gif-images也会停止重绘:http://jsfiddle.net/YNbux/4/

1 个答案:

答案 0 :(得分:4)

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

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