将测试服务器重置为已知状态会导致我的测试失败,因为重置服务器时DataTables实例启动的Ajax请求正在进行中。我想通过在重置服务器之前停止DataTables请求来防止这种情况。
我有一个在某些页面上使用DataTables的应用程序。这些数据表均执行服务器端查询以填充其表。
当我执行系统测试时,有时会发生争用情况:
测试运行程序启动测试服务器。
测试运行程序在测试浏览器中加载页面,该页面上有DataTable实例。
测试运行程序运行测试,执行测试并结束。
测试运行程序将测试服务器重置为下一个测试的已知状态。
页面上会显示一条警报,提示DataTables遇到Ajax错误。警报说:
DataTables警告:表ID =
[某些ID]-Ajax错误。有关此错误的更多信息,请参见http://datatables.net/tn/7
我知道发生这种情况是因为服务器突然中断了Ajax请求。 我正在寻找的是一种首先防止警报出现的方法。我想 在 重置服务器 之前
停止所有正在进行的DataTables请求。
测试完成所有检查后,请驱动浏览器的软件在浏览器中执行以下代码。(这将以某种“拆卸”代码在测试后运行)。
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实例启动 新 请求。但这不是我所关心的。
问题内容: 我有一个多线程的Java项目,我想添加一个方法stop()来停止所有正在运行的线程。问题在于该项目是由其他人开发的,而我不熟悉它如何实现多个线程。 我知道的是,一旦项目开始,就会调用许多线程,并且它们将永远运行。有没有办法找到所有正在运行的线程并停止它们?我进行了很多搜索,找到了如何获取正在运行的线程的列表: 接下来要停止所有正在运行的线程该怎么办? 我想停止这些线程的原因是,我需要将
我之所以要停止这些线程,是因为我需要将这个项目作为一个捆绑包部署到OSGi容器中。一旦包启动,多个线程将永远运行。因此,我需要实现一个destroy()方法来停止所有线程,以控制包的生命周期。 怎么样
问题内容: 我从Linux Shell 连接到。我时不时地运行一个太大的查询。它可以打印,我已经知道这不是我的意思。我想停止查询。 击中(几次)会完全杀死并把我带回外壳,因此我必须重新连接。 是否可以在不杀死自己的情况下停止查询? 问题答案:
问题内容: 如何以编程方式停止正在运行的mysql查询? 我面临的问题是查询是使用用户提供的数据构造的,并且偶尔可能需要很长时间才能执行(大型表15-3000万行)。我想为用户提供一个cancel- option,但不知道如何停止当前正在执行的mysql-query。 该应用程序是Java applet- servlet:用户在applet中指定条件,该条件将传递给servlet,在servlet
我有一个片段,它使用ListView显示多达数百个项目的列表。当用户对列表进行长时间滚动,并且在列表运行时按下后退键时,就会发生不好的事情(列表适配器的getView()中的空指针崩溃)。到目前为止,我找到了以下解决方法: 实现这一点的诀窍是让适配器使用源项列表的克隆: 否则,调用mAdapter。clear()将清除源项列表,因此当在方向更改时重新创建片段时,列表上将不会显示任何项。然而,克隆如
本文向大家介绍C#实现进程管理的启动和停止实例,包括了C#实现进程管理的启动和停止实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现进程管理的启动和停止方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。