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 相关文章推荐
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
Apr 07 Javascript
JavaScript中instanceof运算符的用法总结
Nov 19 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
Feb 03 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 Javascript
微信小程序 wxapp视图容器 view详解
Oct 31 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
ES6中Math对象新增的方法实例详解
Apr 25 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 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 addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
js 实现watch监听数据变化的代码
2019/10/13 Javascript
python使用fork实现守护进程的方法
2017/11/16 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
python 字典操作提取key,value的方法
2019/06/26 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
python线程的几种创建方式详解
2019/08/29 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
python 自动识别并连接串口的实现
2021/01/19 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
励志演讲稿范文
2014/04/29 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server