有幾種方式,但都不完美
其一,不斷循環,直到達到指定時間
function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } }
其實代碼並沒有讓腳本sleep下來, 相反讓CPU迅速上到高負荷的附作用。多數現代瀏覽器會在該段時間內處於假死狀態
其二,用xhr同步請求后台程序,比如傳2000過去,后台就sleep 2秒后再返回,這種方式也有缺點,當N多客戶端都請求后台時,一直保持連接http開銷很大。
此外,window對象的alert,confirm也可以中斷后續代碼的執行。