假设页面上有三个元素:
- 接受数字联系人 ID 的文本框。
- 一个按钮,单击该按钮后,将向服务器发出 Ajax 请求,以获取输入到文本框中的联系人 ID 的联系信息。
- 一个
div
它显示从服务器获取的联系信息。
现在再假设两件事:
- 预计与服务器的往返时间将需要 5 秒。
- 如果在 5 秒延迟期间,用户在文本框中输入不同的数字,并单击按钮,则网页应忽略第一个 Ajax 结果并接受第二个结果(即最近的 Ajax 请求)。里>
我的问题:
- 如何实现我所描述的“最后一个获胜”的 jQuery-Ajax 队列?
- 我会使用 deferred objects或promise objects帮我解决这个问题?
最佳答案
您只需在成功回调中处理这一切即可。在回调中检查的第一件事是是否输入了新信息,如果是,则让新信息获胜。否则继续处理请求的结果。
如果需要的话,应该很容易设置标志。每当发送新请求时,就会悬挂旗帜。在成功回调中使用它。
关于jquery - 如何构建 "Last One Wins"jQuery-Ajax 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11303375/