js 節流函式 2

2021-09-02 16:05:30 字數 1105 閱讀 9531

js 節流函式的核心思想:

防止頻繁的執行,

最後的操作(的影響)覆蓋掉之前的操作(的影響

).

實現方式:延遲執行(有點像"推遲滿足感")

這種實現方式讓我想到了之前我做的swing視窗空閒多久就自動關閉的功能

具體思路:

(1)swing不是當前視窗時,開始啟動定時器,

protected void windowdeactivated2(genericframe frame)

} else

if (timer == null)

if (task == null)

timer.schedule(task, milliseconds_wait_when_blur*1000);

// system.out.println("開始計時(second):"+timehwutil.formatdatezhall(timehwutil.getcurrenttimestamp()));

// system.out.println("定時時間(second):"+milliseconds_wait_when_blur);

islocked = true;

}

public

void windowdeactivated(windowevent e)

super.windowdeactivated(e);}

(2)在定時器等待的過程中,如果啟用了swing視窗,那麼取消定時器,

public void windowactivated(windowevent e) 

genericframe.this.settiming(true);//恢復,不然後面就不會定時了.

super.windowactivated(e);

}

(3)如果不是當前視窗,則先取消定時器,再執行(1),即重新定時.

說明:swing視窗是當前視窗時,執行

windowactivated 方法

參考:

js函式節流(Throttle)

在瀏覽器 dom 事件裡面,有一些事件會隨著使用者的操作不間斷觸發。比如 重新調整瀏覽器視窗大小 resize 瀏覽器頁面滾動 scroll 滑鼠移動 mousemove 也就是說使用者在觸發這些瀏覽器操作的時候,如果指令碼裡面繫結了對應的事件處理方法,這個方法就不停的觸發。而當事件處理比較複雜的時...

js原生函式節流

函式節流就是一定時間內只觸發一次函式。原理是通過判斷是否到達一定時間來觸發函式。時間戳方案 function throttle fn,wait function handle window.addeventlistener mousemove throttle handle,1000 定時器方案 f...

JS函式節流 函式防抖

函式節流 throttle 函式節流 加入函式節流函式 使用方法 this.refs.throttle.addeventlistener scroll throttle that.console,300 函式防抖 debounce 很明顯,這樣的做法不好的是當使用者輸入第乙個字元的時候,就開始請求判...