JavaScript 实现暂停与继续功能的代码示例

作者:半夏时间:2026-10-29 17:14:59浏览:533

本文介绍如何在 JavaScript 中实现类似暂停的功能。由于原生 JS 不支持 sleep,文章通过定义 Pause 和 GoOn 函数,利用 window.eventList 数组存储对象,并结合 setTimeout 延迟执行 NextStep 方法或重新调用原函数,从而模拟暂停后继续执行的效果。

JavaScript 实现暂停与继续功能的代码示例

代码如下:

<script language="javascript">
/*Javascript中暂停功能的实现
JavaScript 本身并不具备内置的暂停功能(sleep 不可用),同时 vbscript 也无法使用 doEvents,因此需要编写特定函数来实现此功能。
JavaScript 作为一种弱类型对象语言,函数也可以被视为对象使用。
例如:
function Test(){
alert("hellow");
this.NextStep=function(){
alert("NextStep");
 } 
} 
我们可以这样调用:var myTest=new Test();myTest.NextStep();
在执行暂停操作时,可以将一个函数拆分为两部分:暂停前的逻辑保持不变,而需要在暂停后执行的代码则放置在 this.NextStep 中。
为了控制暂停和继续的过程,我们需要编写两个函数来分别实现暂停和继续功能。
暂停函数如下:
*/ 
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 + ")",1000);
} 
/* 
该函数将需要暂停的函数对象放入数组 window.eventList 中,同时通过 setTimeout 来调用继续函数。
继续函数如下:
*/ 
function GoOn(ind){
var obj=window.eventList[ind];
window.eventList[ind]=null;
if (obj.NextStep) obj.NextStep();
else obj();
} 
/* 
该函数调用被暂停函数的 NextStep 方法,如果该方法不存在,则重新调用该函数。
函数编写完毕后,我们可以进行如下测试:
*/ 
function Test(){
alert("hellow");
Pause(this,1000);//调用暂停函数
this.NextStep=function(){
alert("NextStep");
 } 
} 
</script>
作者最新文章