日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于requestAnimationFrame与setInterval的一点差异

發布時間:2025/7/14 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于requestAnimationFrame与setInterval的一点差异 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

requestAnimationFrame與setInterval都可以實現循環觸發事件,但是setInterval是基于時間的,而requestAnimationFrame是基于幀數的,在我的一次開發彈幕的項目中,在一開始使用了setInterval來切換彈幕的位置,起初并沒有什么問題,但是當瀏覽器切換回后臺后,就會出現彈幕積攢過多的原因,因為我隨不斷的創建新的彈幕進行移動(為了考慮性能,會優先使用已經被廢棄的彈幕盒),當瀏覽器切換到后臺后,瀏覽器本身已經不進行頁面渲染了,而我的定時器卻在不斷的創建新的彈幕以用來發射,當用戶將瀏覽器切換到前臺時候,會看到在一段時間內積攢的彈幕堆積到一起,最后發現是因為 瀏覽器在后臺的時候 定時器還是會不斷的跑的,但是在當前這種情況下 我可能并不是很希望彈幕系統繼續運行下去,我希望知道瀏覽器當前狀態是在前臺還是后臺,如果是后臺的話 則暫停彈幕,然而在微信中并沒有看到相關的機制,后來看到了requestAnimationFrame,requestAnimationFrame也是不斷的循環執行事件,但是他是按幀執行的,而且有一個好處是 當瀏覽器切換到后臺后,requestAnimationFrame是不會再去執行事件了。這和setInterval有著本質的差異。而requestAnimationFrame之所以在瀏覽器進入后臺不去執行的原因 ,應該是和瀏覽器進入后臺后不去渲染界面有關,因為渲染界面后需要逐幀繪制,當不進行頁面的選然后,也就沒必要去執行幀操作了,所以requestAnimationFrame也不會去執行了

?

如果上述推論是正確的,那可以基此判斷出setTimeout在瀏覽器進入后臺后依然會運行,就像setInterval一樣

轉載于:https://www.cnblogs.com/mrzhu/p/9300406.html

總結

以上是生活随笔為你收集整理的关于requestAnimationFrame与setInterval的一点差异的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。