{hero}

DataTable.util.debounce()

起始版本:DataTables 2.0

等待一段逾時時間後再呼叫函式。

描述

這是一個實用方法,提供給擴充功能和外掛程式的作者使用。它提供建立防抖函式的功能,此函式會在給定的時間段過去後,才調用給定的函式,而此時間段是從上次呼叫防抖函式開始計算的。

這對於限制執行資源密集操作的次數,同時仍然觸發互動操作來說特別有用。一個常見的例子是用於啟用伺服器端處理 (serverSide) 的搜尋輸入時,您可能希望搜尋操作只在使用者完成輸入後執行一次,而不是在每次按鍵時執行。這是 DataTables 在內部用於 searchDelay 選項的方法。

請注意,當呼叫時,傳遞給返回函式的任何引數都將傳遞給原始函式。此外,原始函式的執行範圍將與返回函式的範圍匹配。

它與它的夥伴函式 DataTable.util.throttle() 相似,但是,在這種情況下,它會等到呼叫防抖函式的序列結束後才執行原始函式,而 throttle 即使在包裝函式仍在呼叫時也會定期呼叫。

類型

function debounce( fn, [ wait ] )

描述

等待逾時完成後再呼叫函式,無論包裝函式被呼叫多少次。

參數
回傳

包裝函式,可以呼叫它,並且會自動將對傳入函式的呼叫防抖至給定時間段。

範例

將搜尋 API 方法呼叫次數減少到每秒 1 次

var table = new DataTable('#myTable');
var search = DataTable.util.debounce(function (val) {
	table.search(val).draw();
}, 1000);

$('#mySearchBox').on('keyup', function () {
	search(this.value);
});

相關

以下選項直接相關,也可能在您的應用程式開發中很有用。