JS没有睡眠功能,它有setTimeout()或setInterval()函数。
如果可以将暂停后需要运行的代码移动到回调中,则可以执行如下操作:setTimeout()
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
在这里看例子:http://jsfiddle.net/9LZQp/
这不会停止脚本的执行,但由于这是一个异步函数,因此此代码setTimeout()
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
将在控制台中打印此内容:
HELLO
DOG
THIS IS
(请注意,狗印在“这是”之前)
可以使用以下代码模拟短时间的睡眠:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
现在,如果您想睡1秒钟,只需使用:
sleep(1000);
示例:http://jsfiddle.net/HrJku/1/
请注意,此代码将使脚本忙碌 n 毫秒。这不仅会停止在页面上执行Javascript,而且根据浏览器的实现,可能会使页面完全没有响应,并可能使整个浏览器无响应。换句话说,这几乎总是错误的做法。