如何取消使用 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 调用?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript setInterval - 函数只调用一次