2011-03-09 63 views

回答

5

首先,请记住,服务器本身可能不会按收到请求的顺序返回响应。想象一下,如果你先发出一个复杂的ajax请求,然后再发一个简单的请求(可能引用一些缓存的静态数据)。第二个请求可能会在复杂的返回之前返回。你可以看到这使事情变得复杂。如果收到的请求的顺序与回应的顺序不同,那么如何做出保证?

你有一些选择:

1)你可以请求同步,而不是异步的。但是,这会锁定浏览器。

2)更好的方法是链接请求,以便下一个请求只在第一个请求完成后触发,只在第一个返回后触发第二个请求。

需要注意的是,如果您发现有2个需要链接的ajax操作,创建一个服务器端点来处理一个请求中的2个操作可能是有意义的。即只是做一个Ajax请求来做你需要的一切。

1

另一种选择是在您的Javascript代码中有一个计数器,每次进行此AJAX调用时都会增加一个计数器。然后在您的AJAX调用中传递此值并将该值包含在响应中。通过这种方式,您可以跟踪应答响应的顺序。