网页前端设计

http://www.86y.org
feedskyQQ邮箱

搜索文章

javascript模拟sleep

关注我吧
 2011/9/7 11:35:46 阅读次数:6458

很实用的一个js模拟sleep方法。

当我们在一个js的方法里面,执行一部分代码后,需要让js暂停一断时间,然后再继续向下运行的时候,或者你会想到java的线程sleep(),但js 里面没有暂停的函数,所以要自己实现一个,具体方法看下面的:

使用方法很简单:

function testJsStop(){  
 alert("1");  
 Pause(this,2000);//2秒钟扣执行nextstep事件。。这样就可以设置下一个方法执行的开始时间
 this.NextStep=function(){   
  alert("2");  
 }  
}  

完整实例(1秒钟扣执行nextstep事件。。这样就可以设置下一个方法执行的开始时间)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript模拟sleep http://www.86y.org幸凡在线学习,网页设计,技术交流区,在线学习网,免费视频教程</title>
</head>
<body>
<script>
function Pause(obj,iMinSecond){   
   if (window.eventList==null) window.eventList=new Array();   
   var ind=-1;   
   for (var i=0;i<window.eventList.length;i++){   
       if (window.eventList[i]==null) {   
         window.eventList[i]=obj;   
         ind=i;   
         break;   
        }   
    }   
   if (ind==-1){   
   ind=window.eventList.length;   
   window.eventList[ind]=obj;   
   }   
  setTimeout("GoOn(" + ind + ")",iMinSecond);   
}   
  
//js继续函数  
function GoOn(ind){   
  var obj=window.eventList[ind];   
  window.eventList[ind]=null;   
  if (obj.NextStep) obj.NextStep();   
  else obj();   
}
function testJsStop(){  
 alert("1");  
 Pause(this,2000);//2秒钟扣执行nextstep事件。。这样就可以设置下一个方法执行的开始时间
 this.NextStep=function(){   
  alert("2");  
 }
}  
testJsStop();
</script>
</body>
</html>

(完)


大家有什么问题或技术上的想法可以在此与大家分享,也可以加入前端爱好者QQ群(141999928)一起学习进步:【幸凡前端技术交流群】
0

如果您觉得本文的内容对您的学习有所帮助,捐赠与共勉,支付宝(左)或微信(右)

阅读全文内容关闭