JS实现程序暂停与继续功能代码解读


Posted in Javascript onOctober 10, 2013

下面代码用JS实现了程序的暂停与继续

<script type="text/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 + ")",iMinSecond); 
} 
/* 
该函数把要暂停的函数放到数组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,3000);//调用暂停函数 

this.NextStep=function(){ 
alert("NextStep"); 
} 
} 
</script>
Javascript 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
JavaScript的public、private和privileged模式
Dec 28 Javascript
Jquery给基本控件的取值、赋值示例
May 23 Javascript
JavaScript中的函数模式详解
Feb 11 Javascript
javascript格式化指定日期对象的方法
Apr 21 Javascript
JS实现touch 点击滑动轮播实例代码
Jan 19 Javascript
jquery 手势密码插件
Mar 17 Javascript
vue.js数据绑定操作详解
Apr 23 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
Jun 25 Javascript
Vue中图片Src使用变量的方法
Oct 30 Javascript
vue实现页面切换滑动效果
Jun 29 Javascript
js切换光标示例代码
Oct 10 #Javascript
jquery获取div距离窗口和父级dv的距离示例
Oct 10 #Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
Oct 09 #Javascript
JavaScript动态创建div属性和样式示例代码
Oct 09 #Javascript
javascript中的document.open()方法使用介绍
Oct 09 #Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 #Javascript
js onload事件不起作用示例分析
Oct 09 #Javascript
You might like
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
PHP个人网站架设连环讲(二)
2006/10/09 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
php中的动态调用实例分析
2015/01/07 PHP
Yii学习总结之安装配置
2015/02/22 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
分享vim python缩进等一些配置
2018/07/02 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python是否适合网页编程详解
2019/10/04 Python
Python实现括号匹配方法详解
2020/02/10 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
反腐倡廉标语
2014/06/24 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
文明单位创建材料
2014/12/24 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书