Javascript 在jQuery中处理多个相同的ajax调用
我有5个文本字段,在其中输入不同种类的金额(如发货金额、项目金额等),并根据这些值,使用AJAX调用进行一些计算。 基本上,我一次又一次地做相同的AJAX调用,当用户输入时,计算总数量 所以,问题是,当用户在键入每个单词时,AJAX调用会触发,当用户完成键入时,它仍然在计算中间的数量,因为我的AJAX调用需要一些时间来发送响应 我怎样才能使它保持一致Javascript 在jQuery中处理多个相同的ajax调用,javascript,php,jquery,ajax,multithreading,Javascript,Php,Jquery,Ajax,Multithreading,我有5个文本字段,在其中输入不同种类的金额(如发货金额、项目金额等),并根据这些值,使用AJAX调用进行一些计算。 基本上,我一次又一次地做相同的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();