亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

setTimeout的最小毫秒值是多少?

setTimeout的最小毫秒值是多少?

catspeake 2019-07-25 09:50:22
setTimeout的最小毫秒值是多少?我想說var minValue = 0;if ( typeof callback == 'function' ) {     setTimeout( callback, minValue );}當我用JavaScript實現回調函數時這個代碼。但我發現現代瀏覽器和一些舊瀏覽器具有不同的最小超時值。我知道Zero不能是最小值。setTimeout的最小值是多少?現代瀏覽器和一些舊瀏覽器的兼容性問題?
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

我認為10將是所有瀏覽器中最可靠的最小值,因為我已經看到很多代碼使用它。

但是,4毫秒是HTML5的最小值

事實上,4毫秒是由HTML5規范指定的,并且在2010年及之后發布的瀏覽器中是一致的。在(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)之前,嵌套超時的最小超時值為10 ms。


查看完整回答
反對 回復 2019-07-25
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

在現代瀏覽器中,最小值是4ms(從HTML5開始),在此之前,它是10ms。請注意,這些時間永遠不會100%準確。


查看完整回答
反對 回復 2019-07-25
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

setTimeout最有可能是調用sleepSleep系統調用

實際的機制,包括最小毫秒數,setTimeout是專有的和/或系統相關的,因為它們不在官方的ECMA規范中。這取決于您的Javascript運行時,以及您運行它的系統。鑒于,您的Javascript運行時不會增加大量開銷,最小毫秒數由操作系統和硬件的時間片分辨率決定。最小的“可睡眠”時間通常是系統的調度算法為進程分配另一個時間片所需時間。

例如,在Windows(XP后)上,睡眠系統調用的文檔顯示:

值為零會導致線程將其時間片的剩余部分放棄到準備運行的任何其他線程。如果沒有其他線程準備好運行,則該函數立即返回,并且線程繼續執行。

這意味著,在一些非常罕見的情況下,當前沒有其他進程在硬件線程上等待運行Javascript運行時進程,它可能會在調用程序完成執行后立即繼續,具體取決于Javascript運行時的方式實施。你可能不會經常觀察到這種情況:)


查看完整回答
反對 回復 2019-07-25
  • 3 回答
  • 0 關注
  • 3017 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號