ajax - 进行多个 ajax 回调时保持请求的顺序

标签 ajax jquery

我正在循环访问几个项目并为每个项目发出 ajax 请求(使用 jQuery)。我希望它们独立执行,但按照它们被调用的顺序填充到 DOM 中,而不是它们返回的顺序(由于某种原因,某些请求比其他请求花费的时间更长)。关于此类事情的最佳实践有什么建议吗?

最佳答案

结果可以以任何未定义的顺序返回,它们是异步的,并且受到互联网和服务器的变幻莫测的影响。

您可以像 TCP 通过 UDP 那样处理该问题。您使用序列标识符。

保持序列标识符不变,并在每次发出请求时递增它。当请求返回时,按顺序检查它们,并只在它们进来时处理它们。按顺序保留与数据一起返回的内容的列表,并在每次更新后定期检查该列表。当第一个预期出现时,它应该处理整个列表直到第一个间隙。

请记住,您可能会丢失请求,因此在忽略给定序列标识符之前需要适当的超时。

关于ajax - 进行多个 ajax 回调时保持请求的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4371277/

相关文章:

javascript - 使用 jquery load 将文本插入到 div 中

php - 下拉 AJAX、PHP 和 MYSQL

javascript - Ajax 数据串未通过

javascript - jQuery - 如果屏幕小于指定宽度(响应)

javascript - 使用 HTTP 发送文件数据的边界?

javascript - 使用 JQuery 和 Ajax 访问单击的单元格而不是所有单元格

javascript - 显示隐藏内容(维基百科风格)

javascript - 在谷歌应用引擎中将数据从javascript发送到python

javascript - Excel数据转成html输出

javascript - 从使用 ajax 调用的 php 函数下载图像