最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:05:12
文档

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

关于JS控制代码暂停的实现方法分享_javascript技巧:方法一:这是在网上找的一个方法,可以用。但说实话,这个方法我不怎么明白。写得好复杂。这样做跟setTimeout能有多大区别? 代码如下: function Pause(obj, iMinSecond) { if (window.eventList == null ) window.event
推荐度:
导读关于JS控制代码暂停的实现方法分享_javascript技巧:方法一:这是在网上找的一个方法,可以用。但说实话,这个方法我不怎么明白。写得好复杂。这样做跟setTimeout能有多大区别? 代码如下: function Pause(obj, iMinSecond) { if (window.eventList == null ) window.event


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

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

文档

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

关于JS控制代码暂停的实现方法分享_javascript技巧:方法一:这是在网上找的一个方法,可以用。但说实话,这个方法我不怎么明白。写得好复杂。这样做跟setTimeout能有多大区别? 代码如下: function Pause(obj, iMinSecond) { if (window.eventList == null ) window.event
推荐度:
标签: 控制 方法 的方法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top