JS实现程序暂停与继续功能代码解读

 更新时间:2013年10月10日 16:37:38   作者:  
程序暂停与继续的实现方法有很多,在本文为大家介绍下js中是如果做到的,并对具体的功能代码进行注释说明,感兴趣的朋友不要错过
下面代码用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生成UUID的五种方法详解

    JavaScript生成UUID的五种方法详解

    UUID是一种由算法生成的二进制长度为128位的数字标识符,格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”。本文总结了五个JS生成UUID的方法,感兴趣的可以了解一下
    2022-06-06
  • JS实现简单的右下角弹出提示窗口完整实例

    JS实现简单的右下角弹出提示窗口完整实例

    这篇文章主要介绍了JS实现简单的右下角弹出提示窗口的方法,可实现点击连接右下角弹出提示框的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • JS实现读取xml内容并输出到div中的方法示例

    JS实现读取xml内容并输出到div中的方法示例

    这篇文章主要介绍了JS实现读取xml内容并输出到div中的方法,涉及javascript针对xml格式数据的读取、遍历、输出等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • javascript的currying函数介绍

    javascript的currying函数介绍

    curring的概念将函数式编程的概念和默认参数以及可变参数结合在一起.一个带n个参数,curried的函数固化第一个参数为固定参数,并返回另一个带n-1个参数的函数对象,分别类似于LISP的原始函数car和cdr的行为。currying能泛化为偏函数应用(partial function application, PFA),p 这种函数将任意数量(顺序)的参数的函数转化为另一个带剩余参数的函数对象
    2012-02-02
  • Javascript的一种模块模式

    Javascript的一种模块模式

    全局变量是魔鬼。在YUI中,我们仅用两个全局变量:YAHOO和YAHOO_config。YUI的一切都是使用YAHOO对象级的成员或这个成员作用域内的变量。我们建议在你的应用程序也使用类似的规则。
    2010-09-09
  • javascript实现京东登录显示隐藏密码

    javascript实现京东登录显示隐藏密码

    这篇文章主要为大家详细介绍了javascript实现京东登录显示隐藏密码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • JS绑定事件监听的几种实现方法汇总

    JS绑定事件监听的几种实现方法汇总

    在JavaScript中事件监听是一种用于处理用户交互的机制,下面这篇文章主要给大家介绍了关于JS绑定事件监听的几种实现方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • js判断两个数组是否存在相同元素的四种方法

    js判断两个数组是否存在相同元素的四种方法

    这篇文章主要给大家介绍了关于js判断两个数组是否存在相同元素的四种方法,js中是不能直接用==或者===来计算两个数组是否相等的,那么就需要对数组的值进行比较,需要的朋友可以参考下
    2023-07-07
  • JavaScript获取网页、浏览器、屏幕高度和宽度汇总

    JavaScript获取网页、浏览器、屏幕高度和宽度汇总

    这篇文章主要汇总介绍了JavaScript获取网页、浏览器、屏幕高度和宽度的方法,非常使用,有需要的小伙伴参考下。
    2014-12-12
  • 微信小程序商城项目之商品属性分类(4)

    微信小程序商城项目之商品属性分类(4)

    这篇文章主要为大家详细介绍了微信小程序商城项目之商品属性值联动选择,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论