ASP.NET MVC и Ajax, параллельные запросы?

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

35
задан Boob 24 February 2010 в 14:48
поделиться

3 ответа

Я расширяю ответ Лахлана Роша, который является правильным.

Фреймворк ASP.NET будет "однопоточными" запросами, которые имеют дело с областью Session scope (глобальный ресурс), чтобы предотвратить вмешательство одного запроса в другой. В WebForms, я думаю, вы можете использовать директиву Page, чтобы указать, что отдельные страницы не используют Session и поэтому не нуждаются в синхронной обработке, как это сделано здесь.

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

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

38
ответ дан 27 November 2019 в 06:36
поделиться

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

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

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

<system.web>
    <pages enableSessionState="ReadOnly"/>
</system.web>

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

<%@ Page EnableSessionState="True" %>
35
ответ дан 27 November 2019 в 06:36
поделиться

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

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

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

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

-5
ответ дан 27 November 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: