为什么Alert起暂停作用
Why is Alert working as a pause?
首先,如果之前有人回答过这个问题,我深表歉意。
我正在用JS编写一个代码来读取Excel文件,获取列中第一个单元格的值,搜索它(这是一个ISBN代码,我正在用Google Books API搜索),并获取其他相关信息,通过搜索(如标题、副标题和作者),然后继续下一行并重复该过程。
我的问题是将新数据写回Excel文件。代码正在将所有信息写入文件中最后使用的行中。在使用window.alert标记代码时,我注意到,当警报处于for循环中时,就在搜索开始之前,新数据插入得很好,但如果我尝试使用暂停(比如计时器功能或While循环来消耗时间),那根本没用。
我想知道的是,为什么会发生这种行为,当然,如果可能的话,还有我的问题的可能解决方案,因为必须使用警报作为暂停并不是最有趣的解决方案。
提前感谢
警报将始终停止所有代码的执行,除了web工作者。因此,如果您需要继续执行,请使用web工作程序。看看这个以供参考(注释部分部分部分涵盖了这个主题)
当浏览器显示本地模式交互小部件(如警报)时,它将转换为等待响应的状态。在这种状态下,允许重新绘制页面并处理某些低级别事件。以下是alert()
和confirm()
使用的Mozilla Firefox代码:
http://mxr.mozilla.org/mozilla-central/source/toolkit/components/prompts/src/nsPrompter.js#434
在用户单击警报上的"确定"之前,此openRemotePrompt
功能不会返回。但是,当警报打开时,浏览器的行为会有所不同。循环反复调用thread.processNextEvent
来执行某些类型的工作,直到对话框关闭。(它不运行应用程序的JavaScript代码,因为它是单线程的。)
当您使用纯JavaScript繁忙等待时,例如,通过循环直到某个墙时间,浏览器不会采取这些措施来保持事物的移动。最值得注意的是,当JavaScript代码循环时,UI不会重新绘制。
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 将作用域存储在JSON中
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 如何临时暂停浏览器渲染,然后恢复整个页面
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- jQuery循环在特定位置暂停
- 当我尝试在jsFiddle中暂停并播放时,我的代码可以工作,但它不起作用;我的html页面不起作用
- 为什么Alert起暂停作用
- 音频暂停不起作用,全局-局部变量问题
- 在 JavaScript 中暂停在循环中不起作用
- 有关暂停在 JW 播放器 6 中不起作用的相关视频