Новичок Ajax здесь!
В данный момент в моем веб-приложении MVC ASP.NET мои запросы Ajax, кажется, становятся обработанными в пакетном режиме или с очередями, я не уверен.
Никакие запросы, кажется, не становятся завершенными, пока предыдущий запрос не закончился.
Как я иду о том, чтобы заставлять запросы возвратиться независимо?
Я не обязательно хочу, чтобы кто-то дал мне ответ, но возможно некоторые ссылки на хорошие учебные руководства или ресурсы, которые могли помочь. Спасибо
Я расширяю ответ Лахлана Роша, который является правильным.
Фреймворк ASP.NET будет "однопоточными" запросами, которые имеют дело с областью Session scope (глобальный ресурс), чтобы предотвратить вмешательство одного запроса в другой. В WebForms, я думаю, вы можете использовать директиву Page, чтобы указать, что отдельные страницы не используют Session и поэтому не нуждаются в синхронной обработке, как это сделано здесь.
Проблема в том, что в ASP.NET MVC все запросы используют Session, потому что он используется для реализации TempData. Вы можете полностью отключить состояние сессии, как указал Lachlan Roche, или вы можете решать эту проблему в каждом конкретном случае.
Возможным решением может быть запуск собственных фоновых потоков для обработки любого долго выполняющегося кода, чтобы начальный запрос "завершился" как можно быстрее.
ASP.NET будет последовательно обрабатывать запросы на основе каждой сессии, если сессии не настроены как отключенные или только для чтения в web.config через атрибут enableSessionState на элементе pages.
Поскольку это настройка страницы, это не повлияет на контроллеры MVC, и они по-прежнему будут подвержены последовательной обработке запросов.
Любопытно, что даже если сессии отключены или установлены в режим readonly, мы все равно можем читать и записывать данные сессии. Похоже, что это влияет только на блокировку сеанса, которая вызывает последовательную обработку запросов.
<system.web>
<pages enableSessionState="ReadOnly"/>
</system.web>
Страницы также могут иметь свойство enableSessionState, хотя это не относится к представлениям MVC.
<%@ Page EnableSessionState="True" %>
Я предлагаю использовать jQuery для ваших нужд ajax с asp.net mvc, я использовал его исключительно, и это было очень просто.
Что касается руководств, я бы посмотрел на это: http://docs.jquery.com/Ajax
Есть множество вариантов, с которыми можно поиграть, и я также предлагаю загрузить firebug, чтобы вы могли наблюдать за запуском запросов из ваша страница асинхронно и посмотрите, срабатывают ли они, что они возвращают и т. д.
Как и другая сторона, запросы AJAX асинхронны и не помещаются в очередь, и все они возвращаются независимо, когда они заканчивают, поэтому, если вы посмотрите в firebug, это будет легко увидеть, что происходит за кулисами, и до того, как отладчик сработает