用Javascript实现Sleep暂停功能代码

 更新时间:2010年09月03日 21:42:56   作者:  
ie和firefox都可以使用,有兴趣可以试试
复制代码 代码如下:

<SCRIPT LANGUAGE="JavaScript">
<!--
function Sleep(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);
}
function GoOn(ind)
{
var obj=window.eventList[ind];
window.eventList[ind]=null;
if (obj.NextStep) obj.NextStep();
else obj();
}


function Test()
{
alert("sleep");
Sleep(this,10000);
this.NextStep=function()
{
alert("continue");
}
}

Test();
//-->
</SCRIPT>

下面是别的网友写的代码
复制代码 代码如下:

<script language="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 + ")",1000);
}
/*
该函数把要暂停的函数放到数组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,1000);//调用暂停函数
this.NextStep=function(){
alert("NextStep");
}
}
</script>

相关文章

  • js中this的用法实例分析

    js中this的用法实例分析

    这篇文章主要介绍了js中this的用法,实例分析了js中this的4种常见用法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • 原生js实现下拉多选框组件完整代码

    原生js实现下拉多选框组件完整代码

    这篇文章主要给大家介绍了关于原生js实现下拉多选框组件的相关资料,工作中碰到的需求,模仿原生下拉框的样式,可下拉多选,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • javascript上传图片前预览图片兼容大多数浏览器

    javascript上传图片前预览图片兼容大多数浏览器

    上传图片前预览图片这种效果应用比较广泛,实现的方也大同小异,下面为大家介绍下,在javascript中是如何实现的,感兴趣的朋友可以参考下
    2013-10-10
  • socket在egg中的使用实例代码详解

    socket在egg中的使用实例代码详解

    这篇文章主要介绍了socket在egg中的使用,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • layui清空,重置表单数据的实例

    layui清空,重置表单数据的实例

    今天小编就为大家分享一篇layui清空,重置表单数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • uni-app使用微信小程序云函数的步骤示例

    uni-app使用微信小程序云函数的步骤示例

    这篇文章主要介绍了uni-app使用微信小程序云函数的步骤示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 微信小程序slider组件使用详解

    微信小程序slider组件使用详解

    这篇文章主要为大家详细介绍了微信小程序slider组件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Bootstrap Table表格一直加载(load)不了数据的快速解决方法

    Bootstrap Table表格一直加载(load)不了数据的快速解决方法

    bootstrap-table是一个基于Bootstrap风格的强大的表格插件神器。接下来通过本文给大家介绍Bootstrap Table表格一直加载(load)不了数据的快速解决方法,感兴趣的朋友一起看看吧
    2016-09-09
  • TypeScript 泛型重载函数的使用方式

    TypeScript 泛型重载函数的使用方式

    这篇文章主要介绍了TypeScript 泛型重载函数的使用方式,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • echarts学习之legend点击事件解读

    echarts学习之legend点击事件解读

    这篇文章主要介绍了echarts学习之legend点击事件解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论