当前位置: 首页 > 面试题库 >

获取最新的ajax请求并中止其他人

孙自怡
2023-03-14
问题内容

我一直在搜索,这个问题似乎很简单,但是找不到答案。我有多个请求调用了不同的网址。但是对于每个网址,我只想要一次结果,并且它必须是被调用的同一网址中的最后一个。我现在的问题是“如何只获得最后一个?”
我看着这个,看来已经3岁了:

http://plugins.jquery.com/project/ajaxqueue

还有其他方法可以很好地干净地执行此操作吗?如果有这样的事情,那将是完美的:

queue: "getuserprofile",
cancelExisting: true

(其中getuserprofile队列中现有的ajax将被取消)

谢谢


问题答案:

这说明了)如何使用jQuery进行ajax调用以及如何中止它。您需要做的就是创建一个存储每个请求的数组。然后,您可以在添加新请求的同时取消上一个请求。

ajaxRequests = new Array();

queueRequest = function() {
    if(ajaxRequests[ajaxRequests.length - 1]) {
        ajaxRequests[ajaxRequests.length - 1].abort();
    }

    ajaxRequests[ajaxRequests.length] = //Insert New jQuery AJAX call here.
}


 类似资料:
  • 问题内容: 我有一个函数,在输入更改时运行ajax调用。 但是,有可能在之前的ajax调用完成之前再次触发该函数。 我的问题是,在开始新的ajax调用之前,我将如何中止它?不使用全局变量。(请参阅此处的类似问题的答案) 我当前代码的jsfiddle: Javascript: HTML: 问题答案:

  • 我正在构建一个小型聊天应用程序,以了解一些有关jquery和Ajax的知识。它工作得很好,但目前chatbox正在以以下代码在一个间隔内抓取log.HTML的HTML: 现在,如果用户试图复制一行,它将退出,因为html每隔几秒钟就会刷新一次。因此,我希望构建一个检查来记住最后一条已知消息,并将其与日志中的最后一条消息进行比较。如果它们不匹配(出现了一条新消息),只有这样浏览器才会刷新聊天框中的h

  • 问题内容: 我有一个AJAX请求,将每5秒发送一次。但是问题出在AJAX请求之前,如果先前的请求没有完成,我必须中止该请求并提出新的请求。 我的代码是这样的,如何解决这个问题? 问题答案: jQuery ajax方法返回一个XMLHttpRequest对象。您可以使用此对象取消请求。 XMLHttpRequest具有中止方法,该方法会取消请求,但是如果请求已经发送到服务器,那么即使我们中止请求 ,

  • 问题内容: 我用于ajax请求,而+ 用于渲染UI。在我的应用程序中,有第三方时间轴(reactJS组件)。时间轴可以通过鼠标滚动进行管理。应用程序在发生任何滚动事件后发送对实际数据的ajax请求。问题是服务器上的请求处理可能比下一个滚动事件慢。在这种情况下,应用可能会有几个(通常是2-3个)请求已被弃用,因为用户会进一步滚动。这是一个问题,因为每次接收新数据时线都会开始重绘。(因为它是react

  • 我使用处理ajax请求,使用渲染UI。在我的应用程序中,有第三方时间线(reactJS组件)。时间线可以通过鼠标滚动来管理。在任何滚动事件之后,应用程序都会发送实际数据的ajax请求。问题是服务器上的请求处理可能比下一个滚动事件慢。在这种情况下,应用程序可能有几个(通常为2-3个)请求,由于用户进一步滚动,这些请求已经被弃用。这是一个问题,因为每次收到新数据时,时间线都开始重新绘制。(因为它是re

  • 问题内容: 是否有可能使用jQuery 取消/中止尚未收到响应的Ajax请求? 问题答案: 大多数jQuery Ajax方法都返回XMLHttpRequest(或等效的)对象,因此您可以使用abort()。 请参阅文档: 中止方法 (MSDN)。取消当前的HTTP请求。 abort()(MDN)。如果请求已经发送,则此方法将中止请求。 更新: 从jQuery 1.5开始,返回的对象是名为jqXHR