解
测试完成所有检查后,请驱动浏览器的软件在浏览器中执行以下代码。(这将以某种“拆卸”代码在测试后运行)。
if (typeof $ !== "undefined" && $.fn.dataTable) { var all_settings = $($.fn.dataTable.tables()).DataTable().settings(); for (var i = 0, settings; (settings = all_settings[i]); ++i) { if (settings.jqXHR) settings.jqXHR.abort(); }}说明
即使在未加载jQuery或未加载DataTable的页面上执行时,代码也可以正常工作。因此,它首先检查它们是否已加载,如果未加载,则不执行任何操作。然后,它获取所有DataTable实例的设置对象。在每个设置对象中,它都会检查是否存在
jqXHR,
jqXHR当发出Ajax请求时,将使用jQuery
对象填充。它将
abort()在其上调用方法,从而中止请求。
无论表使用1.10 API还是1.9 API,以上代码均适用于DataTables
1.10。但是,请注意,该
jqXHR字段正式不是公共API的一部分。同时,其中一位开发人员在DataTables论坛上毫无保留地谈论了这一点,因此这可能并不是私有API所依赖的最危险的部分。而且,仅依赖于公共API的解决方案会麻烦得多,因为必须修改所有DataTable实例以跟踪标记Ajax事务开始和结束的事件或自定义Ajax处理程序等的事件。不仅要针对要测试的项目使用适当的代码,而且还要提供提供恰好使用DataTables的HTML小部件的任何第三方库。
请注意,上面的代码不会 阻止 DataTables实例启动 新 请求。但这不是我所关心的。



