代码之家  ›  专栏  ›  技术社区  ›  Bartek

在发送下一个ajax请求之前中止ajax请求(jQuery)

  •  1
  • Bartek  · 技术社区  · 15 年前

    我在我们的内部系统中有一份报告,可以返回从1天到整整一年的数据。因此,报告可能需要0.5秒或超过45秒才能生成所有内容。

    var ax = $.ajax({
        type: "GET",
        url: "/blah",
        data: values,
        success: function(data) { .. }
    });
    

    现在,当我们优秀的用户说“哦,等等!我希望这是从二月开始的,而不是一月!”。但是,自1月份以来,一个请求已经发生了,因为数据太多了!因此,用户将日期选项切换到二月,我可以看到Javascript控制台发送第二个请求。现在我们有两个,这是一个 比赛

    /报告/?开始日期=1月(仍在加载…)

    /报告/?开始日期=二月(嘿,我现在也在这里!)

    然后,通常较小的一个会更快加载,但另一个加载后,它会覆盖他们已经拥有的。。嗯:)

    我试过使用 ax.abort() ax 如上所述的变量 here

    所以现在我想知道,我错过了什么?我只想在用户更改某些选项后立即终止当前请求(客户端,我知道我在服务器端对此无能为力),这样我就不会同时发出2个或更多请求。背景 async: false

    提前感谢你的帮助。

    2 回复  |  直到 5 年前
        1
  •  1
  •   Darin Dimitrov    15 年前

    你可以看一下 ajaxmanager 插件。

        2
  •  3
  •   PanJanek    15 年前