W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
創(chuàng)建一個 debounced(防抖動)函數(shù),該函數(shù)會從上一次被調(diào)用后,延遲 wait 毫秒后調(diào)用 func 方法。 debounced(防抖動)函數(shù)提供一個 cancel 方法取消延遲的函數(shù)調(diào)用以及 flush 方法立即調(diào)用。 可以提供一個 options(選項) 對象決定如何調(diào)用 func 方法,options.leading 與|或 options.trailing 決定延遲前后如何觸發(fā)(注:是 先調(diào)用后等待 還是 先等待后調(diào)用)。 func 調(diào)用時會傳入最后一次提供給 debounced(防抖動)函數(shù) 的參數(shù)。 后續(xù)調(diào)用的 debounced(防抖動)函數(shù)返回是最后一次 func 調(diào)用的結(jié)果。注意: 如果 leading 和 trailing 選項為 true, 則 func 允許 trailing 方式調(diào)用的條件為: 在 wait 期間多次調(diào)用防抖方法。如果 wait 為 0 并且 leading 為 false, func調(diào)用將被推遲到下一個點,類似setTimeout為0的超時。SeeDavid Corbacho's articlefor details over the differences between_.debounce and_.throttle.
0.1.0
(Function): 返回新的 debounced(防抖動)函數(shù)。
// 避免窗口在變動時出現(xiàn)昂貴的計算開銷。
jQuery(window).on('resize', _.debounce(calculateLayout, 150));
// 當點擊時 `sendMail` 隨后就被調(diào)用。
jQuery(element).on('click', _.debounce(sendMail, 300, { 'leading': true, 'trailing': false}));
// 確保 `batchLog` 調(diào)用1次之后,1秒內(nèi)會被觸發(fā)。
var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
var source = new EventSource('/stream');
jQuery(source).on('message', debounced);
// 取消一個 trailing 的防抖動調(diào)用jQuery(window).on('popstate', debounced.cancel);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: