views:

18

answers:

3

Hello,

I work on MVC.net application. I make asynch requests to my controller via jQuery. Below you can see these requests in fiddler (all of them are fired in a specific sequence).

num result protocol Host 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

But server handles these requests in an another sequence (I placed breakpoints on start of each of these methods on the server and so in order to check this sequence). So, actual sequence is: 1) AddRows 2) SaveCurrentRowsState 3) GetNextPage

It seems like asp.net spends different time to handle these requests before it faces my breakpoints. Could somebody help me why it is possible? Is there any way to avoid this situation?

Thanks, Egor

A: 

The order in which the requests are sent using AJAX from the client is not necessary the order in which they will be received and you should never rely on that. One possible solution would be to send the requests synchronously but this might not be a very good idea because it will freeze the UI while processing them and it kind of defeats the purpose of AJAX.

Darin Dimitrov
A: 

If you are sending a series of async messages to the server, then there is no guarantee in what sequence they will be processed. If you need that level of control, either bundle them all into a single call to the server, or call them synchronously.

Clicktricity
A: 

Thanks for replies,

Actually, I changed my code to use synchronous requests. But it slightly freezes my UI and I trying to find a better solution.

Egor4eg