如何确保以特定顺序调用的AJAX请求以相同的顺序获得响应?
答案 0 :(得分:5)
首先,请记住,服务器本身可能不会按接收请求的顺序返回响应。想象一下,如果你首先触发一个复杂的ajax请求,然后是一个简单的秒(可能引用一些缓存的静态数据)。第二个请求可能会在复杂的请求返回之前返回。你可以看到这使事情变得复杂;如果接收到请求的顺序与响应返回的顺序不同,那么如何做出保证呢?
你有一些选择:
1)您可以使请求同步而不是异步。但是,这会锁定浏览器。
2)更好的方法是将请求链接起来,使得下一个请求仅在第一个请求完成后触发,只在第一次返回后触发第二个请求。
作为一个注释,如果您发现需要链接2个ajax操作,那么创建一个服务器端点来处理一个请求中的2个操作可能是有意义的。也就是说,只是做一个ajax请求来做你需要的一切。
答案 1 :(得分:1)
另一种选择是在你的Javascript代码中有一个计数器,每次进行这个AJAX调用时它都会递增。然后在AJAX调用中传递此值并将该值包含在响应中。通过这种方式,您可以跟踪响应的顺序。