繁体   English   中英

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

[英]Why does JavaScript dialog boxes (alert, confirm) stop page redrawing?

在浏览器页面上打开模式对话框,使页面无法重绘。 异步启动的脚本在后台连续运行。

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

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

  • 铬21.0.1180.82
  • 歌剧12.01
  • Safari 6.0

因此,我认为这是预期的行为-但会导致动画跳跃以及其他对于最终用户而言似乎是小故障的事情。 那么,为什么alert()confirm()阻止页面重绘?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM