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 相关文章推荐
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 Javascript
js获取Get值的方法
Sep 29 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
详解vue axios用post提交的数据格式
Aug 07 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
JS数据类型STRING使用实例解析
Dec 18 Javascript
Vue脚手架编写试卷页面功能
Mar 17 Javascript
详解Webpack4多页应用打包方案
Jul 16 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
JavaScript实现alert弹框效果
Nov 19 Javascript
原生js实现无缝轮播图效果
Jan 28 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
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
php开发文档 会员收费1期
2012/08/14 PHP
基于php权限分配的实现代码
2013/04/28 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
AngularJS中的promise用法分析
2017/05/19 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
发布Angular应用至生产环境的方法
2018/12/10 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
python进阶教程之循环对象
2014/08/30 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
详解python中的异常捕获
2020/12/15 Python
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
保证书范文大全
2014/04/28 职场文书
初中差生评语
2014/12/29 职场文书
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS