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

其二,用xhr同步請求后臺程序,比如傳2000過去,后臺就sleep 2秒后再返回,這種方式也有缺點(diǎn),當(dāng)N多客戶端都請求后臺時,一直保持連接http開銷很大。
此外,window對象的alert,confirm也可以中斷后續(xù)代碼的執(zhí)行。
相關(guān)文章
javascript制作網(wǎng)頁圖片上實(shí)現(xiàn)下雨效果
這里給大家分享的是一則使用javascript實(shí)現(xiàn)在網(wǎng)頁圖片上下雨的特效,效果非常炫酷,推薦給小伙伴們。2015-02-02ES6知識點(diǎn)整理之函數(shù)對象參數(shù)默認(rèn)值及其解構(gòu)應(yīng)用示例
這篇文章主要介紹了ES6知識點(diǎn)整理之函數(shù)對象參數(shù)默認(rèn)值及其解構(gòu)應(yīng)用,結(jié)合實(shí)例形式分析了ES6函數(shù)對象參數(shù)相關(guān)使用技巧,需要的朋友可以參考下2019-04-04JS中生成隨機(jī)數(shù)的用法及相關(guān)函數(shù)
這篇文章主要為大家介紹了JS中生成隨機(jī)數(shù)的用法,為大家提供了相關(guān)函數(shù)的使用方法,感興趣的朋友可以參考一下2016-01-01uni-app小程序沉浸式導(dǎo)航實(shí)現(xiàn)的全過程
在跨端項(xiàng)目開發(fā)中,uniapp是個不錯的框架,下面這篇文章主要給大家介紹了關(guān)于uni-app小程序沉浸式導(dǎo)航實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10JavaScript async/await原理及實(shí)例解析
這篇文章主要介紹了JavaScript async/await原理及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-12-12JavaScript中Async/Await通過同步的方式實(shí)現(xiàn)異步的方法介紹
在JavaScript的異步編程中,我們經(jīng)常使用回調(diào)函數(shù)、Promise和 Async/Await來解決異步操作的問題,Async/Await 又是Promise的語法糖,它的出現(xiàn)讓異步編程變得更加直觀和易于理解,本文將詳細(xì)講解Async/Await如何通過同步的方式實(shí)現(xiàn)異步2023-06-06js實(shí)現(xiàn)的光標(biāo)位置工具函數(shù)示例
這篇文章主要介紹了js實(shí)現(xiàn)的光標(biāo)位置工具函數(shù),結(jié)合實(shí)例形式分析了JavaScript操作textarea文本框光標(biāo)位置及文本操作相關(guān)技巧,需要的朋友可以參考下2016-10-10