DataTable.util.debounce()
购买
≡ 显示网站导航
自:DataTables 2.0
调用函数前等待超时。
说明
这是由扩展和插件作者提供使用的实用程序方法。它提供了创建去抖动函数的能力,该函数将自去抖动函数上次调用以来的特定时间段过去后调用给定的函数。
这对于限制执行资源密集操作的次数非常有用,同时仍在触发交互动作。一个常见的例子是与启用服务器端处理的搜索输入一起使用 (serverSide
),您可能希望搜索操作仅在用户完成输入后执行一次,而不是每次按键。这是 DataTables 在内部针对 searchDelay
选项使用的方法。
请注意,调用时传递给返回函数的任何参数都将传递给原始函数。此外,原始函数的执行范围将与返回函数的范围匹配。
它类似于其配套函数 DataTable.util.throttle()
,但是,在这种情况下,它将在调用去抖动函数的序列的末尾等待,然后再运行原始函数,而 throttle
将定期调用,即使包裹函数仍在被调用。
- 自:DataTables 2.0
类型
- 函数 debounce( fn, [ wait ] )
无论包裹函数被调用多少次,都在超时完成之前等待再调用函数。 请注意,调用时传递给返回函数的任何参数都将传递给原始函数。此外,原始函数的执行范围将与返回函数的范围匹配。 参数 1 名称
fn 函数
2 是 - 默认值为 false
wait 整数
- 是 - 默认值为 250
函数调用前最后一个调用的延迟时间 - 毫秒 (mS)。
返回值
可以被调用并将在自动去抖动到给定周期的传入函数调用的包裹函数。
var table = new DataTable('#myTable');
var search = DataTable.util.debounce(function (val) {
table.search(val).draw();
}, 1000);
$('#mySearchBox').on('keyup', function () {
search(this.value);
});
示例
将搜索 API 方法调用减少到每秒 1 次