Javascript 如何确保以特定顺序调用的AJAX请求以相同的顺序得到响应?

Javascript 如何确保以特定顺序调用的AJAX请求以相同的顺序得到响应?,javascript,ajax,Javascript,Ajax,如何确保以特定顺序调用的AJAX请求以相同的顺序得到响应?首先,请记住服务器本身可能不会以接收请求的顺序返回响应。想象一下,如果您首先启动一个复杂的ajax请求,然后启动一个简单的ajax请求(可能引用一些缓存的静态数据)。第二个请求可能会在复杂请求返回之前返回。你可以看到这是如何使事情复杂化的;如果收到请求的顺序与回复的顺序不一样,如何作出保证 您有一些选择: 1) 您可以使请求同步而不是异步。但是,这将锁定浏览器 2) 更好的方法是链接请求,这样下一个请求只在第一个请求完成后触发,而在第一个

如何确保以特定顺序调用的AJAX请求以相同的顺序得到响应?

首先,请记住服务器本身可能不会以接收请求的顺序返回响应。想象一下,如果您首先启动一个复杂的ajax请求,然后启动一个简单的ajax请求(可能引用一些缓存的静态数据)。第二个请求可能会在复杂请求返回之前返回。你可以看到这是如何使事情复杂化的;如果收到请求的顺序与回复的顺序不一样,如何作出保证

您有一些选择:

1) 您可以使请求同步而不是异步。但是,这将锁定浏览器

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


请注意,如果您发现有两个需要链接的ajax操作,那么创建一个服务器端点来处理一个请求中的两个操作可能是有意义的。i、 例如,只需发出一个ajax请求即可完成所有需要的操作。

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

使用TCP,请求在服务器端按顺序重新组合,否则怎么可能?