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 相关文章推荐
javascript while语句和do while语句的区别分析
Dec 08 Javascript
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
May 10 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
Jun 06 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
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
基于文本的留言簿
2006/10/09 PHP
PHP中的string类型使用说明
2010/07/27 PHP
php实现多城市切换特效
2015/08/09 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php微信开发之上传临时素材
2016/06/24 PHP
用ADODB.Stream转换
2007/01/22 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python线程同步的实现代码
2018/10/03 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
详解python中各种文件打开模式
2020/01/19 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
学生打架检讨书1000字
2014/01/16 职场文书
元旦晚会邀请函
2014/02/01 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
学校百日安全活动总结
2015/05/07 职场文书