如何取消使用 Dajaxice 进行的 Ajax 调用?

Posted

技术标签:

【中文标题】如何取消使用 Dajaxice 进行的 Ajax 调用?【英文标题】:How can I cancel Ajax calls made using Dajaxice? 【发布时间】:2012-01-16 07:36:00 【问题描述】:

我一直在基于 Django 的网站上使用 Dajaxice,因为它非常方便。

但是,有时我需要取消 Ajax 请求,而当请求使用 Dajaxice 进行包装时,我不知道该怎么做。

Dajaxice 的文档相当简单——我没有找到任何关于使用 Dajaxice API 取消 Ajax 请求的参考。

有没有人需要处理这个问题?

我应该放弃 Dajaxice 并转而使用 jQuery Ajax 调用吗?

【问题讨论】:

【参考方案1】:

this bug 的拉取请求从 Dajaxice.call 返回底层 XHR 对象。所以你应该能够存储对请求对象的引用,然后调用它的.abort 方法来取消请求。

也就是说,如果您仍然使用 jQuery,我会倾向于使用他们的 AJAX 调用。 jQuery 在更高的抽象层次上提供了很大的灵活性,而不是直接使用 XHR 对象。但这是你的选择。

【讨论】:

我最终将其更改为使用 jQuery,效果更好。【参考方案2】:

不确定这个答案对你的情况有多可行,但是当我有一个失控的 Dajaxice 调用时,我只是重新启动 Apache2 服务器,这会终止来自页面的连接。然后就很开心了。如果你想从用户界面编程,我不确定你会怎么做。

【讨论】:

对,这对我没有帮助:问题不在于呼叫失控,而是新的 Dajaxice 呼叫将使以前的呼叫变得无关紧要,我想取消它们。我没有看到很多人谈论 Dajaxice,所以我正在考虑是否要使用该 API。我可能会直接去原始的 jQuery Ajax 调用来获得我想要的控制。有了这些,我可以排队并取消它们...... 是的,你最好改用 jQuery。

以上是关于如何取消使用 Dajaxice 进行的 Ajax 调用?的主要内容,如果未能解决你的问题,请参考以下文章

Dajaxice 0.5.1 - 似乎无法使教程工作

来自ajax函数的javascript全局变量

JavaScript setInterval - 函数只调用一次

在生产服务器上找不到 Dajaxice

为啥 Dajaxice 和 Dajax 使用 MEDIAL_URL?

使用 Jquery .ajax 取消正在进行的 AJAX 请求? [复制]