{hero}

xhr

自 DataTables 1.10 起

Ajax 事件 - 在 Ajax 请求完成后触发。

说明

当使用 Ajax 数据时,了解 DataTables 何时完成数据加载往往很有用,因此你可以将数据处理成 DataTables 根据其配置期望的格式 (columns.data),或使用服务器 JSON 响应中包含的数据来获取页面的其他部分。

此事件可被视为 ajax.dataSrc 选项(也可以用于处理和拦截来自 Ajax 请求的数据)的事件补充。通常,你可以在 dataSrc 回调中执行数据处理,并使用事件来拦截数据。

请注意,此事件在 DataTables 处理来自服务器的新数据之前调用,因此当此事件触发时,返回的数据不会在页面上绘制。

此外,从 DataTables 1.10.7 开始,在 Ajax 请求完成时,无论成功与否,此事件都会被触发(即无论 Ajax 请求的结果如何,此事件都会被触发)。在 1.10.7 之前,它只会被成功的请求触发。如果发生错误,事件处理程序的 json 参数(第 3 个传入参数)将为 null,如果需要,可以使用 xhr 参数(第 4 个)来确定错误详细信息。

请注意,与所有 DataTables 发出的事件一样,事件对象在其上提供了一个 DataTables API 实例(第一个参数)。此外,这些事件以 dt 命名空间触发。因此,要侦听此事件,还必须使用 dt 命名空间,方法如下例所示,只需将 .dt 附加到事件名称即可。

类型

function function( e, settings, json, xhr )

参数
返回

自 1.10.7 起,你可以返回 true 来向 DataTables 表明,如果你自己处理了某个错误条件,它不应触发其 error 事件。

示例

预处理服务器返回的数据

$('#example')
	.on('xhr.dt', function (e, settings, json, xhr) {
		for (var i = 0, ien = json.aaData.length; i < ien; i++) {
			json.aaData[i].sum = json.aaData[i].one + json.aaData[i].two;
		}
		// Note no return - manipulate the data directly in the JSON object.
	})
	.DataTable({
		ajax: 'data.json'
	});

在另一个 DOM 元素中使用从服务器返回的自定义属性

$('#example')
	.on('xhr.dt', function (e, settings, json, xhr) {
		$('#status').html(json.status);
	})
	.DataTable({
		ajax: 'data.json'
	});

相关

以下选项直接相关,并且可能对你的应用程序开发也有用。