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 相关文章推荐
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
Mac/Windows下如何安装Node.js
Nov 22 Javascript
js实现省市联动效果的简单实例
Feb 10 Javascript
jquerymobile局部渲染的各种刷新方法小结
Mar 05 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
详解webpack 如何集成第三方js库
Jun 29 Javascript
javascript 面向对象实战思想分享
Sep 07 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
js中值引用和地址引用实例分析
Jun 21 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 Javascript
解决vue-cli输入命令vue ui没效果的问题
Nov 17 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
VFP与其他应用程序的集成
2006/10/09 PHP
php session处理的定制
2009/03/16 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
ES6函数和数组用法实例分析
2020/05/23 Javascript
python虚拟环境的安装配置图文教程
2017/10/20 Python
python实现二叉树的遍历
2017/12/11 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
python绘制多个子图的实例
2019/07/07 Python
Django单元测试工具test client使用详解
2019/08/02 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
军训的自我鉴定
2013/12/10 职场文书
高一数学教学反思
2014/02/07 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang