use*_*460 296 javascript jquery sleep delay wait
我有一个JavaScript代码,我需要添加一个睡眠/等待功能.我正在运行的代码已经在一个函数中,例如:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Run Code Online (Sandbox Code Playgroud)
我听说可能的解决方案可能包括
setTimeout
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在这种情况下使用它.
我不能使用PHP,因为我的服务器不支持它,虽然使用jQuery会很好.
BeN*_*ErR 548
JS没有sleep函数,它有setTimeout()或setInterval()函数.
如果您可以将暂停后需要运行的代码移动到setTimeout()
回调中,则可以执行以下操作:
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
Run Code Online (Sandbox Code Playgroud)
看这里的例子:http://jsfiddle.net/9LZQp/
这不会停止脚本的执行,但只要setTimeout()
是异步函数,就是这段代码
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
Run Code Online (Sandbox Code Playgroud)
将在控制台中打印:
HELLO
DOG
THIS IS
Run Code Online (Sandbox Code Playgroud)
(请注意,在此之前打印DOG)
您可以使用以下代码在短时间内模拟睡眠:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你想睡一秒钟,只需使用:
sleep(1000);
Run Code Online (Sandbox Code Playgroud)
例如:http://jsfiddle.net/HrJku/1/
请注意,此代码将使您的脚本忙碌n毫秒.这不仅会停止在您的页面上执行Javascript,而且取决于浏览器的实现,可能会使页面完全无响应,并可能使整个浏览器无响应.换句话说,这几乎总是错误的做法.
归档时间: |
|
查看次数: |
1068789 次 |
最近记录: |