为什么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()
的代码完全分离。看似异步的代码仍然需要在循环中执行,如果某些代码阻塞了该循环,它们将不会单独运行。这对于代码的正确操作至关重要。
相关文章:
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 使用密码对话框Javascript请求帮助
- 是否可以用JavaScript显示等效的文件夹对话框
- 我怎么能让jQuery对话框表现得像Javascript警报
- javascript确认对话框有时会不断出现
- 如何为javascript方法放入jquery确认对话框
- 在动态加载的对话框中执行Javascript
- 为什么JavaScript对话框(警告、确认)会停止页面重绘
- JavaScript 未显示任何警报对话框
- javascript sdk正在打开多个登录对话框
- 如何在对话框中显示javascript变量
- 是否可以隐藏javascript确认对话框
- 如何使用按钮在对话框上显示 Javascript 函数的结果
- 使用 javascript 阻止文件上传对话框
- Javascript/C# - 满足语句条件时的确认对话框
- 如何在 javascript 中检测引导模式对话框的关闭
- Facebook Javascript SDK提要对话框显示空白窗口
- javascript+语义ui:垂直菜单与项目之间的对话框,如何
- Chrome阻止额外的对话框?Javascript操作
- Html5视频在jquery对话框- javascript won'