js防抖和節流
1、防抖
當持續觸發事件時,一定時間段內沒有再觸發事件,事件處理函數才會執行一次,如果設定的時間到來之前,又一次觸發了事件,就重新開始延時。
var i = 0;
var time1 = null;
function click() { clearTimeout(time1); time1 = setTimeout(function () { // 隨便點,不到最后一次我執行算我輸 i++; console.log("你每點擊一次,我就重新開始,直到你最后點擊的那一次,我才開始執行方法"+i) },2000); };
2、節流
在一定時間內只運行一次,若在一定時間內重復觸發,只有一次執行。
var bool = true;
var j = 0;
function click(bool) { if(bool){ // 隨便點,不立即執行算我輸 j++; console.log("我會稀釋函數的執行次數,無論你點擊多少次,我只會在2秒執行一次這個函數"+j) bool = false; setTimeout(()=>{
// 這里的將在2s后執行 bool = true },2000) } };
搞定。。。

浙公網安備 33010602011771號