關於js防抖與節流

2021-09-23 05:56:08 字數 960 閱讀 1477

本人純屬個人見解,如有不對的地方請大佬們指出

關於節流和防抖 我也是不久前才注意到的,主要是用來終止一些可持續載入的**,比如scroll,keyup,keydown這類操作,之前自己做專案的時候已經注意到這種問題,遲遲沒有去深究原因,現在我要把自己了解的內容記錄下來

**節流就是指在操作過程中,隔一段時間 就會載入一次**,比如你設定1秒後執行一次**,當你操作時,無論怎麼樣,都會每隔一秒執行一次。

var flag = true;

window.onscroll = function()

flag = false;

timer = settimeout(function(),1000)

}

上述**中,首先定義乙個flag用來判斷當前狀態,當頁面滾動時,註冊乙個定時器,判斷flag如果是false,直接return出函式,如果是true,給定時器賦值,1秒後執行操作,flag賦值為true,在這個過程中,不管頁面如何滾動,函式都會在 一秒後執行,這就是函式節流。

防抖就是指在操作過程中,只有在你停止操作後才會執行一次函式。有且只有一次,多數用到輸入命令時。

var fangdou = document.getelementbyid('fangdou');

function doudou()

timer = settimeout(function(),1000)

} }fangdou.onkeyup = doudou();

上述**中,首先也是先註冊乙個定時器,然後在函式防抖中定義乙個閉包,判斷timer計時器為空的時候,自動清除定時器,然後再給定時器賦值進行自己的操作,當keyup的時候,timer每次都會為null,就會自動清除計時器,函式重新計算執行時間,知道最後一次操作結束 一秒後執行對應操作。

本人描述能力不強,如有不對的地方,請大家勿噴,多多指正,感謝!!!

js防抖與節流

在效能上,防抖和節流還是很重要的,處理不當或者放任不管就容易引起瀏覽器卡死。我們開發頁面經常會遇到乙個返回頂部的功能。這個按鈕只會在滾動到距離頂部一定位置之後才出現 問題 mounted methods else 效果圖 在執行的時候會發現存在乙個問題 這個函式的預設執行頻率,太!高!了!然而實際上...

js節流與防抖

函式防抖 debounce 觸發高頻事件後n秒內函式只會執行一次,如果n秒內高頻事件再次被觸發,則重新計算時間。函式節流 throttle 高頻事件觸發,但在n秒內只會執行一次,所以節流會稀釋函式的執行頻率。函式節流 throttle 與 函式防抖 debounce 都是為了限制函式的執行頻次,以優...

js節流防抖

什麼是節流防抖?在學習這個問題前,我們先丟擲問題 假設我現在有這麼乙個需求 根據input框輸入內容列印到控制台這個問題簡單啊,很簡單的功能嘛,如下 text id input let input document.getelementbyid input input.addeventlistene...