2010-09-27 53 views
0

我在MVC.net应用程序上工作。我通过jQuery向控制器发出异步请求。下面你可以看到这些请求在提琴手(所有这些都是以特定的顺序被解雇)。MVC.net。异步调用控制器方法的顺序

NUM结果协议主机URL

2929 200 HTTP somesite.com:1936/DynamicTables/SaveCurrentRowsState

2930 200 HTTP somesite.com:1936/DynamicTables/AddRows?键= 30060d39-7531-41a2- 8d40-4c53ec34d6ff & rowsCount = 5

2930 200 HTTP somesite.com:1936/DynamicTables/GetNextPage?键= 30060d39-7531-41a2-8d40-4c53ec34d6ff & newPageNumber = 21 & rowsPerPage = 30

但服务器处理另一个序列中的这些请求(我在服务器上放置了每个这些方法的开始处的断点,以便检查这个序列)。所以,实际的顺序是: 1)AddRows 2)SaveCurrentRowsState 3)GetNextPage

好像asp.net花费不同的时间它面对我的断点之前处理这些请求。 有人能帮助我为什么有可能吗?有什么办法可以避免这种情况?

感谢, 叶戈尔

回答

0

如果您正在向服务器发送一系列异步消息,则无法保证它们将以何种顺序处理。如果您需要这种级别的控制,请将它们全部捆绑到服务器的单个调用中,或者同步调用它们。

0

其中请求使用AJAX客户端发送的顺序是没有必要的,他们将接收和你永远不应该依赖于顺序。一种可能的解决方案是同步发送请求,但这可能不是一个好主意,因为它会在处理它们时冻结用户界面,这种做法有损AJAX的用途。

0

感谢答复,

其实,我改变了我的代码使用同步请求。但它稍微冻结了我的用户界面,我试图找到更好的解决方案。