2010-09-27 3 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

Спасибо за ответы,

На самом деле, я изменил мой код, чтобы использовать синхронные запросы. Но это немного заморозит мой пользовательский интерфейс, и я пытаюсь найти лучшее решение.