javascript里模擬sleep(兩種實現(xiàn)方式)
更新時間:2013年01月25日 16:31:11 作者:
有幾種方式,但都不完美 其一:不斷循環(huán),直到達到指定時間、其二:用xhr同步請求后臺程序,比如傳2000過去,后臺就sleep 2秒后再返回,這種方式也有缺點,當N多客戶端都請求后臺時,一直保持連接http開銷很大,感興趣的朋友可以了解下啊
有幾種方式,但都不完美
其一,不斷循環(huán),直到達到指定時間
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
其實代碼并沒有讓腳本sleep下來, 相反讓CPU迅速上到高負荷的附作用。多數(shù)現(xiàn)代瀏覽器會在該段時間內處于假死狀態(tài)
其二,用xhr同步請求后臺程序,比如傳2000過去,后臺就sleep 2秒后再返回,這種方式也有缺點,當N多客戶端都請求后臺時,一直保持連接http開銷很大。
此外,window對象的alert,confirm也可以中斷后續(xù)代碼的執(zhí)行。
其一,不斷循環(huán),直到達到指定時間
復制代碼 代碼如下:
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
其實代碼并沒有讓腳本sleep下來, 相反讓CPU迅速上到高負荷的附作用。多數(shù)現(xiàn)代瀏覽器會在該段時間內處于假死狀態(tài)

其二,用xhr同步請求后臺程序,比如傳2000過去,后臺就sleep 2秒后再返回,這種方式也有缺點,當N多客戶端都請求后臺時,一直保持連接http開銷很大。
此外,window對象的alert,confirm也可以中斷后續(xù)代碼的執(zhí)行。
相關文章
javascript制作網(wǎng)頁圖片上實現(xiàn)下雨效果
這里給大家分享的是一則使用javascript實現(xiàn)在網(wǎng)頁圖片上下雨的特效,效果非常炫酷,推薦給小伙伴們。2015-02-02ES6知識點整理之函數(shù)對象參數(shù)默認值及其解構應用示例
這篇文章主要介紹了ES6知識點整理之函數(shù)對象參數(shù)默認值及其解構應用,結合實例形式分析了ES6函數(shù)對象參數(shù)相關使用技巧,需要的朋友可以參考下2019-04-04JavaScript中Async/Await通過同步的方式實現(xiàn)異步的方法介紹
在JavaScript的異步編程中,我們經(jīng)常使用回調函數(shù)、Promise和 Async/Await來解決異步操作的問題,Async/Await 又是Promise的語法糖,它的出現(xiàn)讓異步編程變得更加直觀和易于理解,本文將詳細講解Async/Await如何通過同步的方式實現(xiàn)異步2023-06-06