{hero}

DataTable.util.throttle()

自:DataTables 1.11

限制对方法的调用以降低调用频率。

描述

这是一个由扩展和插件作者使用的实用方法。它的使用不会直接影响 DataTable 或 DataTables 配置。DataTables 在内部使用它,并将其提供给公共 API 以帮助促进扩展作者的代码重用。

通常情况下,限制在给定时间段内调用方法的次数非常有用(限制)。例如,考虑使用 search() 方法搜索表格。如果您使用的是服务器端处理,您可能希望限制在一段时间内向服务器发出的请求的次数(一个快速的打字员可能每秒触发许多 Ajax 调用!)。此方法可以通过包装给定函数帮助实现该目标,您将按需要调用该函数(在搜索示例中,在每次按键时),该包装函数会自动限制对目标函数的调用次数达到所需的频率。

请注意,当调用传递给返回函数的任何参数时,都会传递给原始函数。此外,原始函数的执行范围将与返回函数的范围匹配。

这不是一个防抖函数 - 即使函数仍在被调用,它也将在定义的频率执行该函数。再次考虑上述搜索示例来说明这一点,将在给定的频率搜索表格,而用户仍在输入。它不会等到用户停止输入(虽然一旦用户停止输入,就会执行函数的最终执行!)。

有关去抖动函数创建程序,请参见 DataTable.util.debounce()

类型

函数 throttle( fn, [ period ] )

描述

限制对方法的调用以降低调用频率。

参数
返回值

包装函数,可以被调用,并会自动限制对传入函数的调用,直到给定的周期。

示例

将搜索 API 方法调用减少到每秒 1 次

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

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

相关

以下选项直接相关,您在应用开发中也可能用到它们。