如何创建javascript延迟函数

How to create javascript delay function

本问题已经有最佳答案,请猛点这里访问。

我有一个javascript文件,在一些地方我想添加一个小的延迟,这样脚本就可以到达那个点,等待3秒钟,然后继续剩下的代码。我认为最好的方法是创建一个函数,我可以从脚本中的任何地方调用它。

1
2
3
4
function startDelay(lengthOfDelay)
{
//code to make it delay for lengthOfDelay amount of time
}

但是,我找不到任何方法来实现代码以使其等待。我看了一下setTimeout,但您需要将函数硬编码到它中,这对我没有好处。

我有没有办法让剧本停几秒钟?代码暂停时,用户界面冻结没有问题。

如果没有,有没有一种方法可以使用php sleep()来实现这一点?(我知道php是服务器端,javascript是客户端,但可能有一种我没听说过的方法。)


您不需要在setTimeout中使用匿名函数。你可以这样做:

1
2
3
4
5
setTimeout(doSomething, 3000);

function doSomething() {
   //do whatever you want here
}


我刚在另一个论坛上找到这个答案:javascript休眠/等待,然后继续

谢谢你的回答。


啊,是的。欢迎使用异步执行。

基本上,暂停脚本会导致浏览器和页面在3秒钟内没有响应。这对Web应用程序来说很糟糕,因此不受支持。

相反,你必须考虑"基于事件"。使用setTimeout在一段时间后调用一个函数,在此期间,该函数将继续在页面上运行javascript。


可以使用以下示例创建延迟

1
setInterval(function(){alert("Hello")},3000);

用毫秒替换3000

您可以将要执行的内容放在函数中。