如何中断 Rails 中的 AJAX 请求?

Posted

技术标签:

【中文标题】如何中断 Rails 中的 AJAX 请求?【英文标题】:How to interrupt an AJAX request in rails? 【发布时间】:2011-08-07 11:50:32 【问题描述】:

我有以下情况:

选项卡式视图在单击选项卡以更改视图时发送 AJAX 请求,每个请求从用户单击选项卡到刷新视图大约需要 3-4 秒(这在我的情况下是健康且被接受的!)

我的问题是:

如果用户在加载 tab1 时点击了 tab2,则用户希望看到 tab2 的内容并忽略第一次点击 tab1。

发生的情况是,tab1 的内容首先出现,然后是 tab2 的内容。我想阻止这种行为。

我的框架包含:Ruby 1.8.7 - Rails 2.3.5 - jQuery 1.5.2(用于做 AJAX 事情)

我尝试使用类似的代码,但它对我不起作用

function doRequest()
  if (lastPageAjaxRequest)
    lastPageAjaxRequest.abort();
    lastPageAjaxRequest = null;
  

  lastPageAjaxRequest = $.ajax(..);

【问题讨论】:

【参考方案1】:

不是取消请求,而是取消成功回调。您可以在成功回调中检查这是否是最近的请求,如果是,则更新页面,否则等待最近的请求返回。

【讨论】:

以上是关于如何中断 Rails 中的 AJAX 请求?的主要内容,如果未能解决你的问题,请参考以下文章

Rails3 中的 Ajax 请求,无法正常工作

rails中发送ajax请求

如何使用 ajax-datatables-rails 理解 Rails 中的包含

Ajax PUT 请求导致 Rails 应用程序注销。为啥?

如何获得ajax响应更改rails应用程序中的html内容

Rails 通过 ajax 闪烁通知