1. 程式人生 > >js的防抖節流優化高頻觸發

js的防抖節流優化高頻觸發

防抖

  js的防抖就是比如一個水龍頭壞了一直在滴水,我們為了節約用水,那麼我們會想辦法讓他不再滴的那麼快,這就是防抖。

 常見的比如scroll,onresize這些高頻觸發的情況。

 這就是一個防抖函式利用閉包讓作用域鏈的變數得以儲存,每次獲取結束時間與初始時間之差,如果大於我們設定的值就進行觸發一次函式,然後設定初始時間為結束時間.

 

節流

節流就是比如關閉了水龍頭後的最後水龍頭還要再來一滴。也就是隻在最後執行一次。

主要利用了setTimeout來實現,滾動的過程中我們一直清楚定時器,只在最後停止滾動的時候觸發一次

防抖加節流

那我們來組合一下:

這就是一個防抖加