zoukankan      html  css  js  c++  java
  • js 实现“暂停”功能

    /*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");
        }
    }
    Test();
  • 相关阅读:
    1.选择排序法
    24.桌面移动qq
    23.控制语句题目
    23.位运算实现加法
    22.dll调用技术
    21.MFC进制转换工具
    2.CString转换到char*
    20.原码反码补码及图形化界面
    11gR2 Agent 简介
    RAC数据库后台进程介绍
  • 原文地址:https://www.cnblogs.com/yokoboy/p/3001810.html
Copyright © 2011-2022 走看看