防抖:當持續觸發事件時,一定時間段內沒有再觸發事件,事件處理函式才會執行一次,如果設定的時間到來之前,又一次觸發了事件,就重新開始延時。
// 防抖
function debounce(fn, wait)
}// 處理函式
function handle()
// 滾動事件
window.addeventlistener('scroll', debounce(handle, 1000));
var timeout = null
這句話只會在繫結事件時執行一次。
當最先開始滾動時,觸發繫結事件,之後便是,在滾動完成後一秒鐘,觸發handle函式。
節流:當高頻事件觸發時,第一次會立即執行(給scroll事件繫結函式與真正觸發事件的間隔一般大於delay),而後再怎麼頻繁地觸發事件,也都是每delay時間才執行一次。而當最後一次事件觸發完畢後,事件也不會再被執行了
var throttle = function(func, delay)
}
}
function handle()
window.addeventlistener('scroll', throttle(handle, 1000));
其中arguments是函式執行時的實參列表。 JS中的防抖和節流
防抖和節流是前端優化的一部分,可以防止過多的請求。在剛開始做專案的時候還沒有意識到,但是到了企業級開發或者大專案開發的時候,要考慮防抖和節流。詳細請參考js 防抖動與節流 怎麼理解 防抖其實是使某一函式 請求 在使用者結束操作後的規定時間後再執行。應用場景 比如在表單輸入時一般要進行非空校驗,如果沒...
js中的防抖和節流
防抖節流二者做的處理最終想要達到的目的就是減少對來自於頁面的操作。限制使用者互動次數,避免頻繁請求。主要用於一些可能會短時間內頻繁操作的事件。例如click scroll resize keydown mousemove,input等,對於這一類事件,會很有可能被重複操作,重複向伺服器請求資料。這樣...
js防抖和節流
在進行視窗的resize scroll,輸入框內容校驗等操作時,如果事件處理函式呼叫的頻率無限制,會加重瀏覽器的負擔,導致使用者體驗非常糟糕。此時我們可以採用debounce 防抖 和throttle 節流 的方式來減少呼叫頻率,同時又不影響實際效果。函式防抖 函式防抖 debounce 當持續觸發...