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


Posted in Javascript onOctober 11, 2012

方法一:这是在网上找的一个方法,可以用。但说实话,这个方法我不怎么明白。。。写得好复杂。这样做跟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); 
}

以上仅供大家参考,欢迎吐槽!
Javascript 相关文章推荐
js中document.getElementByid、document.all和document.layers区分介绍
Dec 08 Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
Bootstrap每天必学之轮播(Carousel)插件
Apr 25 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
vue项目tween方法实现返回顶部的示例代码
Mar 02 Javascript
ES6中let 和 const 的新特性
Sep 03 Javascript
Vue实现简易翻页效果源码分享
Nov 08 Javascript
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
tracking.js实现前端人脸识别功能
Apr 16 Javascript
JavaScript实现优先级队列
Dec 06 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
Oct 11 #Javascript
js函数的延迟加载实现代码
Oct 11 #Javascript
javascript中方便增删改cookie的一个类
Oct 11 #Javascript
js事件(Event)知识整理
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 #Javascript
You might like
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
python使用cPickle模块序列化实例
2014/09/25 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
python如何写个俄罗斯方块
2020/11/06 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
办护照工作证明范本
2014/01/14 职场文书
融资合作协议书范本
2014/10/17 职场文书
个人廉洁自律总结
2015/03/06 职场文书
消夏晚会主持词
2015/06/30 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
Java spring定时任务详解
2021/10/05 Java/Android