javascript中不提供sleep功能如何實(shí)現(xiàn)這個(gè)功能
更新時(shí)間:2014年05月27日 09:11:59 作者:
javascript中不提供sleep功能,而我們時(shí)長(zhǎng)會(huì)用到這個(gè)功能,下面與大家分享個(gè)不錯(cuò)的解決方法,而且在不同的機(jī)器上的執(zhí)行速度是一致的
javascript中不提供sleep功能,而我們時(shí)長(zhǎng)會(huì)用到這個(gè)功能。
有一種思路是跑一段循環(huán)體,讓程序空耗CPU的時(shí)間來(lái)實(shí)現(xiàn)延時(shí)。這有一個(gè)不足,不同的機(jī)器CPU的執(zhí)行速度是不一樣的,這很容易導(dǎo)致的慢的機(jī)器會(huì)SLEEP很久。
筆者從別的論壇看到一種機(jī)智的解決方法,在不同的機(jī)器上的執(zhí)行速度是一致的。在此與大家共享。
function sleep(n)
{
var start=new Date().getTime();
while(true) if(new Date().getTime()-start>n) break;
}
當(dāng)然這個(gè)方法依然是靠空轉(zhuǎn)CPU的方法。
還有一個(gè)方法是使用setTimeout()函數(shù)。
函數(shù)語(yǔ)法如下:setTimeout(code,millisec)
使用范例:
var t=setTimeout("alert('5 seconds!')",5000)
這段代碼的作用是millisec后執(zhí)行代碼code,范例中就是5000毫秒后執(zhí)行了alert函數(shù)。也可以達(dá)到和sleep相同的效果。
有一種思路是跑一段循環(huán)體,讓程序空耗CPU的時(shí)間來(lái)實(shí)現(xiàn)延時(shí)。這有一個(gè)不足,不同的機(jī)器CPU的執(zhí)行速度是不一樣的,這很容易導(dǎo)致的慢的機(jī)器會(huì)SLEEP很久。
筆者從別的論壇看到一種機(jī)智的解決方法,在不同的機(jī)器上的執(zhí)行速度是一致的。在此與大家共享。
復(fù)制代碼 代碼如下:
function sleep(n)
{
var start=new Date().getTime();
while(true) if(new Date().getTime()-start>n) break;
}
當(dāng)然這個(gè)方法依然是靠空轉(zhuǎn)CPU的方法。
還有一個(gè)方法是使用setTimeout()函數(shù)。
函數(shù)語(yǔ)法如下:setTimeout(code,millisec)
使用范例:
var t=setTimeout("alert('5 seconds!')",5000)
這段代碼的作用是millisec后執(zhí)行代碼code,范例中就是5000毫秒后執(zhí)行了alert函數(shù)。也可以達(dá)到和sleep相同的效果。
相關(guān)文章
通過(guò)js示例講解時(shí)間復(fù)雜度與空間復(fù)雜度
這篇文章主要給大家介紹了關(guān)于如何通過(guò)js示例講解時(shí)間復(fù)雜度與空間復(fù)雜度的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
使用javascript實(shí)現(xiàn)簡(jiǎn)單的選項(xiàng)卡切換
本文主要介紹了使用javascript實(shí)現(xiàn)簡(jiǎn)單的選項(xiàng)卡切換的效果,代碼非常的簡(jiǎn)單,兼容性十分棒,這里推薦給小伙伴們。2015-01-01
JavaScript實(shí)現(xiàn)標(biāo)題欄文字輪播效果代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)標(biāo)題欄文字輪播效果代碼,涉及JavaScript基于時(shí)間函數(shù)及流程控制操作標(biāo)題欄文字的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
JS+CSS實(shí)現(xiàn)仿msn風(fēng)格選項(xiàng)卡效果代碼
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)仿msn風(fēng)格選項(xiàng)卡效果代碼,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)變換頁(yè)面元素css樣式實(shí)現(xiàn)切換功能的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
微信小程序?qū)崿F(xiàn)動(dòng)態(tài)設(shè)置placeholder提示文字及按鈕選中/取消狀態(tài)的方法
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)動(dòng)態(tài)設(shè)置placeholder提示文字及按鈕選中/取消狀態(tài)的方法,涉及事件綁定及this.setData動(dòng)態(tài)設(shè)置屬性數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
JavaScript實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的幾種常用方式
這篇文章主要介紹了JavaScript實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的幾種常用方式,結(jié)合實(shí)例形式對(duì)比分析了JavaScript頁(yè)面跳轉(zhuǎn)的常見(jiàn)實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
JavaScript實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03

