Javascript 在jQuery中处理多个相同的ajax调用

Javascript 在jQuery中处理多个相同的ajax调用,javascript,php,jquery,ajax,multithreading,Javascript,Php,Jquery,Ajax,Multithreading,我有5个文本字段,在其中输入不同种类的金额(如发货金额、项目金额等),并根据这些值,使用AJAX调用进行一些计算。 基本上,我一次又一次地做相同的AJAX调用,当用户输入时,计算总数量 所以,问题是,当用户在键入每个单词时,AJAX调用会触发,当用户完成键入时,它仍然在计算中间的数量,因为我的AJAX调用需要一些时间来发送响应 我怎样才能使它保持一致 停止所有旧的AJAX调用,只要用户在最后一个文本框中输入数据,就进行最后一个AJAX调用。(我不知道,怎么做) 还有别的办法吗 $.ajax返回一

我有5个文本字段,在其中输入不同种类的金额(如发货金额、项目金额等),并根据这些值,使用AJAX调用进行一些计算。 基本上,我一次又一次地做相同的AJAX调用,当用户输入时,计算总数量

所以,问题是,当用户在键入每个单词时,AJAX调用会触发,当用户完成键入时,它仍然在计算中间的数量,因为我的AJAX调用需要一些时间来发送响应

我怎样才能使它保持一致

  • 停止所有旧的AJAX调用,只要用户在最后一个文本框中输入数据,就进行最后一个AJAX调用。(我不知道,怎么做)
  • 还有别的办法吗

  • $.ajax
    返回一个jqXHR对象,该对象包含一个
    abort()
    方法

    所以

    这将创建请求,然后立即挂起它。保存从$.ajax返回的结果,并在需要时调用abort

    按照您所描述的,我会将每个请求保存到一个数组中。当您要发出一个新请求时,我会循环遍历数组并中止其中的任何请求。然后使用
    .always()
    方法在请求完成后从阵列中删除请求,以便阵列中仅存在活动请求


    从:

    为了向后兼容XMLHttpRequest,将使用jqXHR对象 公开以下属性和方法:

    [……]

    getAllResponseHeaders()

    getResponseHeader()

    状态码()

    中止()


    尝试计算
    focusout
    上的[ajax调用]数量,而不是每个
    keypress
    var jqXHR = $.ajax({url:'index.php'});
    jqXHR.abort();