在指定的等待时间后运行javascript
Run javascript after a specify waiting time
我有一个javascript代码列表,如下
javascript: alert("hi1");
javascript: alert("hi2");
javascript: alert("hi3");
javascript: alert("hi4");
...
javascript: alert("hi100")
我想运行第一行,然后等待一个特定的时间。然后运行第二行,等待一个特定的时间。然后运行第三行…直到最后。
有人能帮我吗?
谢谢! !
JavaScript是单线程和基于事件的。它有一个事件循环调用你的代码,然后在你的代码返回之前不会运行任何其他东西。
这意味着你不能在两个语句之间"等待",因为它仍然会在你等待的时候阻止任何其他代码的运行。相反,您必须在稍后的时间安排一个新事件,该事件作为一个单独的函数执行其余的代码,然后返回到事件循环。
实际上,alert
函数确实会阻塞所有内容,直到您解除警报,这就是它只应该用于真正严重问题的原因之一。
在使用setTimeout
函数完成特定时间后调度某事。试着模仿您的示例:
var counter = 0;
function loop() {
counter += 1;
alert("hi" + counter);
if (counter < 100) {
setTimeout(loop, 1000); // Wait one second (1000 ms), then run again.
}
}
loop();
这里我假设警报之间的时间总是相同的(1秒)。如果它是一个取决于计数器的简单公式,则示例应该易于修改。
您也可以使用setInterval
来启动一个以固定间隔触发计时器事件的重复计时器。在这种情况下,我没有使用这个,因为alert
调用实际上使一切都等待,我们希望计时器只在警报被解除时启动。
作为旁注,没有必要在你的行前面加上"javascript:"。最可能的是,你不应该在任何地方写"javascript:"
使用javascript的setTimeout(function(), time_in_millis);
setTimeout(function(){alert("Hello")}, 3000);应该没问题。
您可以使用:
setTimeout(function(){alert("hi2");}, 3000);
等待3000毫秒后执行
将警报拆分为多个函数,并在调用下一个警报前使用setTimeout
function partA() {
//line of code you want to execute
window.setTimeout(partB,1000) //wait for a sec
}
function partB() {
//line of code you want to execute
window.setTimeout(partC,1000) //wait for a sec
}
function partC() {
...
}
//repeat
只需编写耗时的函数,并在需要暂停脚本时使用。
function pauseScript(seconds) {
var stop = Date.now() + seconds*1000;
for (var i; stop >= Date.now(); i++){}
}
那么你的代码就是这样的
alert("hi1");
pauseScript(10); # wait 10 seconds
alert("hi2");
pauseScript(7); # wait 7 seconds
alert("hi3");
pauseScript(8); # wait 8 seconds
alert("hi4");
// etc...
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 向下滚动时运行javascript
- 在Android WebView中运行Javascript-onPageFinished循环
- 在父网页的iframe中运行JavaScript
- 有条件地运行javascript函数-Razor,HTML
- 如何通过获取用户输入和使用按钮来运行JavaScript函数
- 使用c#在Web服务器上运行JavaScript方法
- 单击链接时停止运行javascript
- 在浏览器检查表单之前运行javascript onsubmit
- 如何在表单提交事件后运行JavaScript*
- Mediawiki小部件将不会运行javascript
- 有没有一种方法可以在服务器端页面加载之前在加载时运行javascript
- 在GitHub上运行JavaScript Koans
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- 在不加载页面的情况下运行javascript
- [AutoIt]如何使用FF.au3在FireFox上的页面中运行javascript
- 仅在屏幕媒体上运行javascript/jquery,而不是打印
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 安卓系统:通过loadUrl运行javascript时,网络视图中的视频会冻结
- 在页面加载完成之前,使用URL参数运行JavaScript