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

Chr*_*ris 7 ajax jquery

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

Orb*_*ing 8

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

您可以做的是以与TCP相同的方式处理问题.您使用序列标识符.

保持序列标识符,并在每次发出请求时递增它.当请求返回时,请按顺序检查它们,并仅在它们进入时处理它们.按顺序保存一个返回的数据列表,并在每次更新后检查该列表.当第一个预期进入时,它应该将整个列表处理到第一个间隙.

请记住,您可能会丢失请求,因此在忽略给定的序列标识符之前,合适的超时将是有序的.


Chr*_*ris 3

这个问题的答案最终是一个名为 ajaxManager 的 jQuery 插件。这正是我所需要的:

https://github.com/aFarkas/Ajaxmanager