时间:2021-05-26
这样的形式执行:
复制代码 代码如下:
d.wait(3000).run(function(m){ //等待3秒
alert('从前有座山');
}).wait(1000).run(function(m){ //等待1秒
alert('山里有座庙');
}).wait(2000).run(function(m){ //等待2秒
alert('庙里有一个老和尚给一个小和尚讲故事');
}).wait(3000).run(function(m){ //等待3秒
alert('讲的故事是:');
}).goStart(); //跳到第一条重新执行,这句拿掉就只执行一次
复制代码 代码如下:
<!doctype html>
<html>
<head>
<title>异步执行</title>
</head>
<body>
<script type="text/javascript">
function Delay(){
this.funList= [];
this.index = 0;
this.re = null;
this.isloop = false;
};
Delay.prototype = {
wait:function(m){
if(this.funList[this.index] && typeof this.funList[this.index].fun != 'function'){
m += this.funList[this.index].m;
}
this.funList[this.index] = {m:m,fun:null};
return this;
},
run:function(fun){
if(typeof this.funList[this.index].fun != 'function'){
this.funList[this.index].fun = fun;
this.index++;
}else{
this.index++;
this.funList[this.index] = {'m':0,'fun':fun};
}
this.start();
return this;
},
start:function(){
var self = this;
if(this.re) return;
var setOutrun = function(funList,index){
if(funList[index] == undefined){
clearTimeout(self.re);
return false;
}
var m = funList[index].m,
fun = funList[index].fun;
typeof fun == 'function' || (fun = function(){});
self.re = setTimeout(function(){
if(fun(index) === false)return false;
if(self.isloop){
index = -1;
self.isloop = false;
}
setOutrun(funList,++index);
},m);
}
setOutrun(this.funList,0);
},
stop:function(){
return clearTimeout(this.re);
},
goStart:function(){
var self = this,
fun = function(){
self.isloop = true;
};
if(this.funList[this.index] && typeof this.funList[this.index].fun != 'function'){
this.funList[this.index].fun = fun;
this.index++;
}else{
this.funList[this.index] = {'m':0,'fun':fun};
}
this.start();
}
};
var d = new Delay();
d.wait(3000).run(function(m){
alert('从前有座山');
}).wait(2000).run(function(m){
alert('山里有座庙');
}).wait(2000).run(function(m){
alert('庙里有一个老和尚给一个小和尚讲故事');
}).wait(2000).run(function(m){
alert('讲的故事是:');
}).goStart();
</script></body>
</html>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在js中,延迟执行函数有两种,setTimeout和setInterval,用法如下:functiontestFunction(){Console.log('h
phpsleep(10);usleep(10);js里的setInterval("方法",100);PHPsleep()函数一个命令行(批处理)延迟执行命令的语
本文实例讲述了js实现延迟加载的方法。分享给大家供大家参考。具体分析如下:setTimeout('yourFunction()',5000);//5秒后执行yo
js的延迟加载有助与提高页面的加载速度,以下是延迟加载的几种方法:1.使用setTimeout延迟方法的加载时间延迟加载js代码,给网页加载留出更多时间func
一般在JS页面延迟执行一些方法。可以使用以下的方法jQuery.delay()方法简介http://shawphy.com/2010/11/jquery-del