国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

關于JS控制代碼暫停的實現方法分享

2024-05-06 14:21:07
字體:
來源:轉載
供稿:網友
方法一:這是在網上找的一個方法,可以用。但說實話,這個方法我不怎么明白。。。寫得好復雜。這樣做跟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);
}

以上僅供大家參考,歡迎吐槽!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 综艺| 林西县| 寿阳县| 宝坻区| 望都县| 十堰市| 峡江县| 大荔县| 万源市| 康乐县| 黑山县| 芜湖市| 庆云县| 吴江市| 桐柏县| 绵阳市| 泸溪县| 开原市| 聂荣县| 南充市| 黔西县| 金塔县| 蒙山县| 鹤岗市| 汾西县| 德惠市| 德庆县| 香港| 伊金霍洛旗| 卢氏县| 朝阳县| 江西省| 泽库县| 大城县| 西昌市| 米林县| 昆明市| 古交市| 柳林县| 额尔古纳市| 连南|