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 相关文章推荐
用JS操作FRAME中的IFRAME及其内容的实现代码
Jul 26 Javascript
jquery批量控制form禁用的代码
Aug 06 Javascript
绑定回车enter事件代码
May 18 Javascript
Bootstrap精简教程
Nov 27 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
浅析JavaScript中的对象类型Object
May 26 Javascript
很棒的js Tab选项卡切换效果
Aug 30 Javascript
简单实现jquery焦点图
Dec 12 Javascript
JS对象创建的几种方式整理
Feb 28 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
Sep 05 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
PHP新手上路(六)
2006/10/09 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
实例讲解python函数式编程
2014/06/09 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
python实现FTP服务器服务的方法
2017/04/11 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
广告学专业自荐信范文
2014/02/24 职场文书
2014离婚协议书范文
2014/09/10 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
2014年个人售房协议书
2014/10/30 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
python glom模块的使用简介
2021/04/13 Python
总结python多进程multiprocessing的相关知识
2021/06/29 Python