我在MVC.net应用程序上工作。我通过jQuery向我的控制器发出异步请求。下面你可以在fiddler中看到这些请求(所有这些请求都按特定顺序触发)。
num result protocol主机URL
2929 200 HTTP somesite.com:1936 / DynamicTables / SaveCurrentRowsState
2930 200 HTTP somesite.com:1936 / DynamicTables / AddRows?key = 30060d39-7531-41a2-8d40-4c53ec34d6ff& rowsCount = 5
2930 200 HTTP somesite.com:1936 / DynamicTables / GetNextPage?key = 30060d39-7531-41a2-8d40-4c53ec34d6ff& newPageNumber = 21& rowsPerPage = 30
但是服务器在另一个序列中处理这些请求(我在服务器上的每个方法的开始处放置了断点,因此为了检查这个序列)。所以,实际的顺序是: 1)AddRows 2)SaveCurrentRowsState 3)GetNextPage
似乎asp.net在面对我的断点之前花费了不同的时间来处理这些请求。 有人可以帮助我为什么有可能吗?有没有办法避免这种情况?
谢谢, 叶戈尔
答案 0 :(得分:0)
使用AJAX从客户端发送请求的顺序不一定是接收它们的顺序,您不应该依赖它。一种可能的解决方案是同步发送请求,但这可能不是一个好主意,因为它会在处理它时冻结UI,这有点违背了AJAX的目的。
答案 1 :(得分:0)
如果要向服务器发送一系列异步消息,则无法保证它们将以何种顺序处理。如果您需要这种级别的控制,请将它们全部捆绑到服务器的单个调用中,或者同步调用它们。