26

我有一个 javascript 文件,在几个地方我想添加一个小的延迟,所以脚本会到达那个点,等待 3 秒,然后继续执行其余的代码。我想到的最好的方法是创建一个函数,我可以从脚本中的任何地方调用它。

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

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

有什么方法可以让脚本暂停几秒钟?当代码暂停时,我对 UI 冻结没有任何问题。

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

4

3 回答 3

61

您不需要将匿名函数与setTimeout. 你可以这样做:

setTimeout(doSomething, 3000);

function doSomething() {
   //do whatever you want here
}
于 2013-06-01T14:51:33.753 回答
3

是的。欢迎来到异步执行。

基本上,暂停脚本会导致浏览器和页面在 3 秒内无响应。这对于 Web 应用程序来说太可怕了,因此不受支持。

相反,您必须考虑“基于事件”。使用 setTimeout 在一定时间后调用一个函数,该函数将在这段时间内继续在页面上运行 JavaScript。

于 2013-06-01T14:52:25.727 回答
1

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

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

3000替换为毫秒数

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

于 2014-02-05T17:57:11.023 回答