关于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);
}

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

(0)

相关推荐

  • 用Javascript实现Sleep暂停功能代码

    复制代码 代码如下: <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) { wind

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

    下面代码用JS实现了程序的暂停与继续 复制代码 代码如下: <script type="text/javascript"> /*Javascript中暂停功能的实现 Javascript本身没有暂停功能(sleep不能使用)同时 vbscript也不能使用doEvents,故编写此函数实现此功能. javascript作为弱对象语言,一个函数也可以作为一个对象使用. 比如: function Test(){ alert("hellow"); this.N

  • jQuery及JS实现循环中暂停的方法

    本文实例讲述了jQuery及JS实现循环中暂停的方法.分享给大家供大家参考.具体分析如下: 问题: jquery对数组进行循环,如果要求每次循环的时候暂停2秒钟,在使用jQuery的.earch循环的时候,无论怎么设置,都不会暂停. setTimeout也只是在第一次执行的时候暂停. 原因猜测: js开始执行多线程? 改进: 改为setInterval来控制循环,达到数组最大值的时候,clearInterval取消循环. 以下是jQuery代码: <script type="text/ja

  • Javascript中暂停功能的实现代码

    复制代码 代码如下: <script language="javascript"> /*Javascript中暂停功能的实现 Javascript本身没有暂停功能(sleep不能使用)同时 vbscript也不能使用doEvents,故编写此函数实现此功能. javascript作为弱对象语言,一个函数也可以作为一个对象使用. 比如: function Test(){  alert("hellow");  this.NextStep=function()

  • jquery中animate的stop()方法作用实例分析

    本文实例分析了jquery中animate的stop()方法作用.分享给大家供大家参考.具体分析如下: 这里以一个视频中的代码段告诉你stop()的作用: 代码如下: <style type="text/css"> ul li{ width:50px; height:30px; background:#333; margin-bottom:10px; color:#fff;} </style> <ul id="flyul"> &l

  • jQuery实现带滚动线条导航效果的方法

    本文实例讲述了jQuery实现带滚动线条导航效果的方法.分享给大家供大家参考.具体分析如下: 最早见到这种导航是在魅族的官网,当时(去年)觉得挺不错的但自己不会JavaScript,因此那时"可望而不可及".今日去手机QQ for Android官网,又发现类似这样的导航,反正自己也没啥事,所以就尝试用jQuery做出这样的效果. 效果如下: 首页 说说 日志 相册     CSS: body,ul,li{margin:0;padding:0;} #testnav{;height:80

  • javascript实现的像java、c#之类的sleep暂停的函数代码

    下面就是我的实现的方法: 代码 复制代码 代码如下: <script type="text/javascript"> function test() { var s="javascript--暂停函数"; setTimeout( function(){ eval(sleep(test)); //执行return之后的代码,也就是"alert(s);" }, 2000 ); //两秒后执行 return; //运行到这就退出 alert

  • javascript中巧用“闭包”实现程序的暂停执行功能

    Author:月影  Form:http://bbs.51js.com/thread-66361-1-1.html <input type="button" value="继续" onclick='st();'/> <script> /*基本原理*/ var st = (function(){   alert(1);   alert(2); return function()   {     alert(3);     alert(4);  

  • JS控制按钮自动切换背景颜色(可暂停)

    JS控制按钮自动切换背景颜色,可暂停_我们 .grigg{ position:relative; font-family:Verdana; font-size:16px;color:#ffffff; } y=" "; function colourWrite(){ y=document.bgColor; if (document.layers) {x=document.FM.box.value} if (document.all) {x=document.all.kurt.innerH

  • 关于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

  • JS控制表单提交的方法

    本文实例讲述了JS控制表单提交的方法.分享给大家供大家参考.具体如下: <Script Language="JavaScript"> function autoSubmit(){ var form = document.forms[0]; var actionPath = "?mo=phone"; form.action = actionPath; form.submit(); return true; } </Script> 如果需要两个提

  • JS控制层作圆周运动的方法

    本文实例讲述了JS控制层作圆周运动的方法.分享给大家供大家参考,具体如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; char

  • js控制web打印(局部打印)方法整理

    首先定义css样式: 复制代码 代码如下: @media print { .noprint { display: none;color:green } } 对于不想打印的内容只用在标签中加上 class=noprint即可,打印的时候客户也不会看到页面任何变化. 打印时调用 window.print(); 另外几种js局部打印的方法: 移花接木: 打印的时候,把需要打印的内容替换成整个body内容(用户会在打印的时候看到变化,客户体验不太好) 复制代码 代码如下: function previe

  • 用js控制css的不错的方法

    #tabs UL {DISPLAY: inline; PADDING-LEFT: 0px; MARGIN-LEFT: 10px; WHITE-SPACE: nowrap} #tabs UL LI {BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #999 1px solid; DISPLAY: inline; PADDING-LEFT: 12px; FONT-SIZE: x-small; BACKGROUND: #eee

  • JS 控制CSS样式表

    下面先记录一下JS控制CSS所使用的方法. 1.使用javascript更改某个css class的属性... <style type="text/css"> .orig { display: none; } </style> 你想要改变把他的display属性由none改为inline. 解决办法: 在IE里: document.styleSheets[0].rules[0].style.display = "inline"; 在firef

  • asp.net中button控制先执行js再执行后台程序的方法

    本文实例讲述了asp.net中button控制先执行js再执行后台程序的方法.分享给大家供大家参考.具体分析如下: 在.net中要实现button控制点击之后先执行js再执行后台程序这个看上去没什么难度,这里我们就一起来看一个asp.net中button控制先执行js再执行后台程序的实现方法,希望可以帮助到各位. 关于button这个服务器控件,我一直想减少它向服务器提交数据.那些检测,还是在客户端实现就好了. 这就需要javascript,但是我发现仅仅有javascript还是不够的.but

  • js控制网页背景音乐播放与停止的方法

    本文实例讲述了js控制网页背景音乐播放与停止的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml

  • JS控制表格实现一条光线流动分割行的方法

    本文实例讲述了JS控制表格实现一条光线流动分割行的方法.分享给大家供大家参考.具体分析如下: 这是很漂亮的一个分割行的代码. 其实就是利用JS控制表格实现的一条七彩流光分割横线 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>js用单元格实现的七彩线条</tit

  • js控制文本框只输入数字和小数点的方法

    本文实例讲述了js控制文本框只输入数字和小数点的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function clearNoNum(obj) {  obj.value = obj.value.replace(/[^\d.]/g, "");//清除"数字"和"."以外的字符  obj.value = obj.value.replace(/^\./g, "");//验证第一个字符是数字而不是.  obj.

随机推荐