关于JS控制代码暂停的实现方法分享

 更新时间:2012年10月11日 23:08:46   作者:  
关于JS控制代码暂停的工作总结,需要的朋友可以参考下
方法一:这是在网上找的一个方法,可以用。但说实话,这个方法我不怎么明白。。。写得好复杂。这样做跟setTimeout能有多大区别?
复制代码 代码如下:

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);
}
function GoOn(ind) {
var obj = window.eventList[ind];
window.eventList[ind] = null;
if (obj.NextStep) obj.NextStep();
else obj();
}
function testJsStop() {
alert( "1");
Pause( this, 3000);
this.NextStep = function () {
alert( "2");
}
}

方法二:这也是在网上找的,可以用。它的原理是先弹出一个窗口,因为JS在弹出窗口时,代码会在当前位置暂停执行。等过了一段时间后再执行关闭窗口函数,代码继续执行。这中方法非常简单,但令人讨厌的是它会弹出一个窗口。。。
复制代码 代码如下:

function pause(numberMillis) {
addcloud();
var dialogScript = 'window.setTimeout(' + ' function () { $("#bgDiv").remove(); }, ' + numberMillis + ');';
var result = window.showModalDialog('javascript:document.writeln(' + '"<script>' + dialogScript + '<' + '/script>")' );
}
function test() {
var a = 0;
alert(a);
pause(5000);
a = 999;
alert(a);
}

方法三:这个方法是我自己写的。因为我要实现的功能比较复杂,要循环调用getpath()方法。而前面的两种方法都只能应用在顺序执行的代码段中,无法控制循环。在这里我采用了前后台结合的方法。在前台通过Ajax调用后台方法,直接将线程挂起1s,成而实现JS代码强制暂停。
前台JS:
复制代码 代码如下:

function getpath() {
var time = 1000;
$.ajaxSettings.async = false;
$.getJSON( "../Actions/TspHandler.ashx?rKey=" + parseInt(Math.random() * 999 + 1).toString() + "&opKey=Sleep"
+ "&Time=" + time,
null,
function (json) {
});
..........
}

后台ashx:
复制代码 代码如下:

if (methodname == "Sleep" )//休眠
{
int time = int .Parse(req["Time"].ToString());
System.Threading. Thread.Sleep(time);
}

以上仅供大家参考,欢迎吐槽!

相关文章

  • .NET微信公众号开发之创建自定义菜单

    .NET微信公众号开发之创建自定义菜单

    这篇文章主要介绍了.NET微信公众号开发之创建自定义菜单的相关资料,需要的朋友可以参考下
    2015-07-07
  • JavaScript+html实现前端页面滑动验证(2)

    JavaScript+html实现前端页面滑动验证(2)

    这篇文章主要为大家详细介绍了JavaScript+html实现前端页面滑动验证的第二种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • js中函数调用的两种常用方法使用介绍

    js中函数调用的两种常用方法使用介绍

    这篇文章主要介绍了js中函数调用的两种常用方法使用,需要的朋友可以参考下
    2014-07-07
  • JS实现瀑布流布局

    JS实现瀑布流布局

    这篇文章主要为大家详细介绍了JS实现瀑布流布局效果展示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • JavaScript常见的函数中的属性与方法总结

    JavaScript常见的函数中的属性与方法总结

    当定义和调用函数时,JavaScript 函数对象会自动具有一些特定的属性,本文为大家总结了一些常见的属性和方法,感兴趣的小伙伴可以了解一下
    2023-05-05
  • 使用canvas实现魔法摄像头的示例代码

    使用canvas实现魔法摄像头的示例代码

    我们用手机的摄像头自拍,很容易实现简单的自拍效果,如复古、黑白等等,其实我们使用web端的JavaScript也是可以实现的,接下来就带领小伙伴实现一个魔法摄像头,并且提供了截图下载功能,需要的朋友可以参考下
    2023-08-08
  • 微信小程序bindtap与catchtap的区别详解

    微信小程序bindtap与catchtap的区别详解

    本文主要介绍了微信小程序bindtap与catchtap的区别详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript实现前端倒计时效果

    JavaScript实现前端倒计时效果

    这篇文章主要为大家详细介绍了JavaScript实现前端倒计时效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • 在JavaScript中查找字符串中最长单词的三种方法(推荐)

    在JavaScript中查找字符串中最长单词的三种方法(推荐)

    这篇文章主要介绍了在JavaScript中查找字符串中最长单词的三种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • canvas绘制的直线动画

    canvas绘制的直线动画

    本文主要分享了canvas绘制的直线动画的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论