JS中如何实现sleep功能 js定时执行方法

1. jquery的$.delay()方法

设置一个延时来推迟执行队列中之后的项目。这个方法不能取代JS原生的setTimeout。

The .delay() method is best for delaying between queued jQuery effects. Because it is limitedit doesn't, for example, offer a way to cancel the delay.delay() is not a replacement for JavaScript's native setTimeout function, which may be more appropriate for certain use cases.

例子:.slideUp() 和 .fadeIn()之间延时800毫秒。

HTML 代码:

<div id="foo /">

jQuery 代码:

$('#foo').slideUp(300).delay(800).fadeIn(400);

2. 通过循环消耗cpu

    function sleep(n) {

    var start = new Date().getTime();

    while(true)  if(new Date().getTime()-start > n) break;

    }

3. 用setTimeout

假设有三个步骤,步骤之间需要暂停一段时间;可以采用如下的方法:

function firstStep() {

//do something

setTimeout("secondStep()", 1000);

}

function secondStep() {

//do something

setTimeout("thirdStep()", 1000);

}

function thirdStep() {

//do something

}

____________________________________________________________________________________________


复制代码
<script language="JavaScript" type="text/javascript">

//setTimeout后固定时间后执行指定内容,单位毫秒

//写法一
/*
var iID=setTimeout(function(){
    alert(iID);
},1000);
*/

//写法二
var iID=setTimeout("clock()",2000);//或者var iID=setTimeout(clock,2000);

function clock(){
    alert(iID);
}

clearTimeout(iID);

//setInterval用法与setTimeout相同,只是setTimeout固定时间后执行且只执行一次。setInterval循环每过一段固定时间执行一次。
//每次调用setTimeout或setInterval函数都会产生一个唯一的ID,可以通过clearTimeout或clearInterval函数(这两个函数的参数对应接收一个setTimeout或setInterval返回的ID)暂停setTimeout或setInterval函数,(同一个setInterval循环其返回值不变)
//但是测试clearInterval(iID)可阻止setTimeout,clearTimeout(iID)也可阻止setInterval的继续执行
</script>


__________________________________________________________________________________________________________

 js定时执行方法的方法有两种:


setTimeout("Function",time);

SetInterval("Function",time);


区别:
1.setTimeOut方法在一定时间后执行某方法,只执行一次,setInterval方法是每间隔一定时间都执行指定方法

2.clearTimeout(对象) 清除已设置的setTimeout对象;clearInterval(对象) 清除已设置的setInterval对象

展开阅读全文

没有更多推荐了,返回首页