輸入框進行搜尋時,如果使用者停止輸入並且過了一定時間,才真正開始檢查輸入框的值,用來節約瀏覽器資源;還有配置動態rem也可以使用防抖函式
// 防抖
function
shake
(fn, delay)
timer =
settimeout((
)=>
, delay)}}
// 處理函式
function
handle()
// 滾動事件
document.
addeventlistener
('scroll'
,shake
(handle,
1000
))
function
throttle
(fn, delay)
, delay)}}
function
scrollevent()
document.body.onscroll =
throttle
(scrollevent,
1000
)
可以將一些事件降低觸發頻率,比如說懶載入要計算滾動條位置,不必每次滾動都計算,可以降低計算頻率,而不必去浪費資源
js防抖和節流
在進行視窗的resize scroll,輸入框內容校驗等操作時,如果事件處理函式呼叫的頻率無限制,會加重瀏覽器的負擔,導致使用者體驗非常糟糕。此時我們可以採用debounce 防抖 和throttle 節流 的方式來減少呼叫頻率,同時又不影響實際效果。函式防抖 函式防抖 debounce 當持續觸發...
js 防抖和節流
突然被人問到節流和防抖的區別,一臉大寫的懵逼,一直以為他倆是乙個東西。那趕緊學習一下吧。定義 多次觸發事件後,事件處理函式只執行一次,並且是在觸發操作結束時執行。原理 對事件處理函式做延時執行,如果在設定的時間內再次觸發事件函式,清除定時器 cleartimeout 重新計時。適用場景 乙個輸入框連...
js 防抖和節流
很多 都會提供乙個按鈕 用於返回頂部。這個按鈕只會在滾動到距離頂部一定位置的時候才出現 監聽滾動事件,返回當前到頂部的距離 function showtop window.onscroll showtop 但是執行的時候存在乙個問題 函式預設執行頻率太高,按一次鍵盤的下方向鍵,函式就執行了9次!實際...