jquery - 如何构建 "Last One Wins"jQuery-Ajax 队列?

标签 jquery queue jquery-deferred promise

假设页面上有三个元素:

  • 接受数字联系人 ID 的文本框。
  • 一个按钮,单击该按钮后,将向服务器发出 Ajax 请求,以获取输入到文本框中的联系人 ID 的联系信息。
  • 一个div它显示从服务器获取的联系信息。

现在再假设两件事:

  • 预计与服务器的往返时间将需要 5 秒。
  • 如果在 5 秒延迟期间,用户在文本框中输入不同的数字,并单击按钮,则网页应忽略第一个 Ajax 结果并接受第二个结果(即最近的 Ajax 请求)。
<小时/>

我的问题:

最佳答案

您只需在成功回调中处理这一切即可。在回调中检查的第一件事是是否输入了新信息,如果是,则让新信息获胜。否则继续处理请求的结果。

如果需要的话,应该很容易设置标志。每当发送新请求时,就会悬挂旗帜。在成功回调中使用它。

关于jquery - 如何构建 "Last One Wins"jQuery-Ajax 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11303375/

相关文章:

jquery - 增加自动完成滚动条的大小

java - Java中使用Queue进行归并排序

mysql - mysql中的用户队列

java - 如何使用ehcache或JCS作为队列或流式缓存?

javascript - ECMAScript Promise.all 方法适用于 jQuery.Deferred。为什么?

jQuery UI 在拖放时获取可拖动 div 中元素的属性 :

javascript - 如何在页面加载时直接使用 Javascript 在输入字段中填写数据?

javascript - 上下文混合在 $.deferred.promise 中

javascript - Ajax并行发帖: Define timeout for each request and get only suceeded

javascript - jquery 兄弟属性