在指定等待时间后运行javascript
我有如下javascript代码列表在指定等待时间后运行javascript,javascript,Javascript,我有如下javascript代码列表 javascript: alert("hi1"); javascript: alert("hi2"); javascript: alert("hi3"); javascript: alert("hi4"); ... javascript: alert("hi100") 我想跑第一线,然后等待一个特定的时间。然后运行第二线并等待特定时间。然后跑第三线…直到终点 有人帮我吗 谢谢 使用javascript的设置超时(函数(),时间单位为毫秒)将警报拆分为多个
javascript: alert("hi1");
javascript: alert("hi2");
javascript: alert("hi3");
javascript: alert("hi4");
...
javascript: alert("hi100")
我想跑第一线,然后等待一个特定的时间。然后运行第二线并等待特定时间。然后跑第三线…直到终点
有人帮我吗
谢谢 使用javascript的
设置超时(函数(),时间单位为毫秒)代码>将警报拆分为多个函数,并在调用下一个警报之前使用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
setTimeout(函数(){alert(“Hello”)},3000);
你应该做到这一点。你可以使用:
setTimeout(function(){alert("hi2");}, 3000);
它在3000毫秒(等待时间)后执行。JavaScript是单线程的,基于事件。它有一个调用代码的事件循环,然后在代码返回之前不会运行任何其他操作
这意味着您不能在两条语句之间进行“等待”,因为它仍然会在您等待时阻止任何其他代码运行。相反,您必须在以后安排一个新事件,作为一个单独的函数执行代码的其余部分,然后返回到事件循环
实际上,alert
函数确实会阻止一切,直到您解除警报,这也是它只应用于真正严重问题的原因之一
使用setTimeout
函数在特定时间后安排某项任务。
尝试以下方法来模拟您的示例:
var计数器=0;
函数循环(){
计数器+=1;
警报(“hi”+计数器);
如果(计数器<100){
setTimeout(循环,1000);//等待一秒钟(1000毫秒),然后再次运行。
}
}
loop();
在这里,我假设警报之间的时间总是相同的(1秒)。如果它是一个依赖于计数器的简单公式,那么这个例子应该很容易修改
您还可以使用setInterval
启动重复计时器,以固定的时间间隔触发计时器事件。在本例中,我没有使用它,因为alert
调用实际上会让一切等待,我们希望计时器只在警报解除时启动
作为补充说明,在你的台词前面不需要“javascript:”。最有可能的是,您不必在任何地方编写“javascript:”。只需编写耗时的函数,并在需要暂停脚本时使用它即可
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...
使用setTimeout()或delay()。这是四行代码javascript:setTimeout(函数(){alert(“hi1”);},3000);javascript:setTimeout(函数(){alert(“hi2”);},3000);javascript:setTimeout(函数(){alert(“hi3”);},3000);javascript:setTimeout(函数(){alert(“hi-end”)},3000)代码>,它没有发挥作用,在3000毫秒后,它一直在运行它看起来很复杂,有没有更简单的方法?你能看看我对@sash答案的评论吗,我不能做这项工作谢谢你的回答,我只是举个例子警报hi1,警报hi2。。。警报hi100
,实际上我想要的代码是不同的,我只是说每一行都是javascript代码,我想在一段特定的等待时间后逐行执行。你能再帮我一次吗