Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在指定等待时间后运行javascript_Javascript - Fatal编程技术网

在指定等待时间后运行javascript

在指定等待时间后运行javascript,javascript,Javascript,我有如下javascript代码列表 javascript: alert("hi1"); javascript: alert("hi2"); javascript: alert("hi3"); javascript: alert("hi4"); ... javascript: alert("hi100") 我想跑第一线,然后等待一个特定的时间。然后运行第二线并等待特定时间。然后跑第三线…直到终点 有人帮我吗 谢谢 使用javascript的设置超时(函数(),时间单位为毫秒)将警报拆分为多个

我有如下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代码,我想在一段特定的等待时间后逐行执行。你能再帮我一次吗