ASP.NET MVC и Ajax, одновременные запросы?

AJAX новичок здесь!
На данный момент в моем веб-приложении ASP.NET MVC мои запросы AJAX, кажется, попадают в очередь или поставлены в очередь, я не уверен.
Похоже, что запросы не завершаются до тех пор, пока предыдущий запрос не будет завершен.
Как мне заставить запросы возвращаться независимо?
Я не обязательно хочу, чтобы кто-то дал мне ответ, но, возможно, некоторые ссылки на хорошие учебники или ресурсы, которые могли бы помочь. благодаря

Я расширяю ответ Лаклана Роша, что верно.

Структура ASP.NET будет «однопоточными» запросами, которые имеют дело с областью сеанса (глобальным ресурсом), чтобы один запрос не мешал другому. В WebForms я думаю, вы можете использовать директиву страницы, чтобы указать, что отдельные страницы не используют сеанс, и поэтому не нужно синхронно обращаться с этим.

Проблема в том, что в ASP.NET MVC все запросы используют Session , потому что он используется для реализации TempData. Вы можете полностью отключить состояние сеанса, как указал Лаклан Рош, или вы можете разобраться с этим в каждом конкретном случае.

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

ASP.NET будет последовательно обрабатывать запросы на основе сеанса, если сеансы не настроены как отключенные или не читаются только в web.config через атрибут enableSessionState в элементе pages.

Поскольку это параметр страницы, это не повлияет на controllerы MVC, и они все равно будут обрабатываться последовательным запросом.

Любопытно, что даже если сеансы отключены или настроены на чтение, мы все равно можем читать и записывать данные сеанса. Это влияет только на блокировку сеанса, которая вызывает обработку последовательного запроса.

   

Страницы также могут иметь свойство enableSessionState, хотя это не относится к представлениям MVC.

 <%@ Page EnableSessionState="True" %> 

С выпуском ASP.MVC 3 теперь вы можете добавить атрибут для своих controllerов, чтобы пометить Session как readonly, что позволяет одновременно вызывать действия от одного и того же клиента.

Поддержка бесконтрольного controllerа:

Sessionless Controller – еще одна отличная новая функция в ASP.NET MVC 3. С помощью controllerа Sessionless вы можете легко контролировать поведение сеанса для controllerов. Например, вы можете сделать свой сеанс HomeController как отключенный или ReadOnly, разрешая одновременное выполнение запроса для одного пользователя. Подробнее см. В параллельных запросах в ASP.NET MVC и HowTo: controller без сессий в MVC3 – что и почему? ,

– из этой статьи DZone .

Добавляя SessionState(SessionStateBehaviour.Disabled) к вашему controllerу, среда выполнения позволит вам одновременно вызывать несколько действий из одного сеанса браузера.

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

В более поздних версиях ASP MVC вы можете украсить отдельные classы controllerов SessionStateAttribute

 [System.Web.Mvc.SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)] public class MyController : Controller { } 

Начиная с версии .NET Framework v3.0, вы можете использовать перечисление SessionStateBehavior с SessionStateAttribute:

 [SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)] public class MyController : BaseController { } 

Ну параллельный запрос больше зависит от браузера, а если вы стреляете, предположим, что 10 одновременных запросов к действию. Использование AJax в Mozilla и то же самое с использованием IE 8, то вы обнаружите, что Mozilla имеет стиль, чтобы запустить один запрос, ожидая ответа, а затем запустить второй и т. Д. on …, потому что это одно за другим, тогда как в IE * этот огонь содержит около 6 одновременных запросов на сервер.

Таким образом, одновременный запрос также зависит от типа браузера.

Я предлагаю использовать jQuery для ваших нужд ajax с asp.net mvc, я использовал его исключительно, и это было очень просто.

Что касается учебников, я бы посмотрел на это: http://docs.jquery.com/Ajax

Есть множество вариантов для игры, и я также предлагаю загружать firebug, чтобы вы могли смотреть запросы, запускаемые с вашей страницы асинхронно, и посмотреть, стреляют ли они, и что они возвращают и т. Д.

Как и другие стороны, запрос AJAX асинхронен и не попадает в очередь, и все они возвращаются независимо, когда они заканчивают, поэтому, если вы смотрите в firebug, будет легко увидеть, что происходит за кулисами и до того, как отладчик получает удар

  • jQuery Datepicker с текстовым вводом, который не позволяет вводить пользователя
  • Центрирование div вертикально и горизонтально с помощью jQuery
  • JSON: Как сделать междоменный вызов JSON
  • Остановить форму отправки, используя JQuery
  • jQuery AJAX вызывает цикл
  • Как передать значения с одной страницы на другую в jQuery
  • Проблемы с jQuery getJSON с использованием локальных файлов в Chrome
  • addID в jQuery?
  • jQuery - Получить ширину элемента, если он не отображается (Дисплей: Нет)
  • Internet Explorer 9 не правильно отображает ячейки таблицы
  • Как настроить автозаполнение jquery-ui в Rails
  • Давайте будем гением компьютера.