网页性能优化04-函数节流
生活随笔
收集整理的這篇文章主要介紹了
网页性能优化04-函数节流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數節流(throttle)
1-函數節流介紹
- 1.先理解什么是js中的高頻事件
- 高頻事件 : 觸發頻率極高的事件。例如 滾動條事件onscroll 鼠標移動onmousemove 網頁大小變化onresize等
- 高頻觸發:事件本身不是高頻的,但是用戶可以通過很快的手速來觸發。例如用戶瘋狂快速點擊 搶購按鈕(onclick,onmousedown)
- 高頻事件 : 觸發頻率極高的事件。例如 滾動條事件onscroll 鼠標移動onmousemove 網頁大小變化onresize等
-
2.高頻事件的危害
- a.浪費資源,降低網頁速度,甚至導致瀏覽器卡死:由于高頻事件觸發非常頻繁,可能1秒鐘會執行幾十次甚至上百次,如果在這些函數內部,又調用了其他函數,尤其是操作了DOM (DOM操作耗性能且可能導致瀏覽器出現回流) ,不僅僅會降低整個網頁的運行速度,甚至會造成瀏覽器卡死,崩潰。
- b.網絡堵塞 : 如果在高頻事件中,進行了重復的ajax請求,可能會導致請求數據出現混亂,并且還占用服務器帶寬增加服務器壓力 (間接增加服務器成本)
-
3.函數節流介紹(throttle)
- 函數節流:限制事件處理函數的執行周期。
- 例如:鼠標點擊事件,限制0.5s內只能被觸發一次。 無論你點擊有多快,0.5s也只會執行一次。
- 函數節流:限制事件處理函數的執行周期。
2-函數節流解決思路
限制事件處理函數的執行周期
- 1.聲明變量 記錄上一次 觸發時間 (默認為0,保證事件第一次無條件觸發)
- 2.觸發時間時:判斷現在的時間 和 上一次時間 的間隔是否大于 節流間隔
- 3.成功觸發后 : 將現在的時間 變成 下一次時間 的參考時間
- 現任女友已經結束了, 她已經成為下一任女友 故事里的 前任女友
3.萬能節流函數的封裝
- 為什么要封裝萬能的節流函數
- 在上一個小節中,我們的重點是介紹函數節流的思路。但是在實際開發中,每一個節流函數的事件處理都是不一樣的,他們可能是鼠標移入、鼠標移出、鼠標移動。 每一個案例需要的節流間隔也不同
總結
以上是生活随笔為你收集整理的网页性能优化04-函数节流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网页性能优化03-函数防抖
- 下一篇: ARSessionConfigurati