У меня есть веб-страница в стиле «с вкладками», где после загрузки страницы каждая вкладка запускает Ajax-запрос на их содержимое (используя jQuery). Бэкэндом является ASP.NET MVC, работающий в Visual Studio, поэтому обычный сервер ASP.NET Development Server обслуживает запросы. У меня возникают следующие проблемы:
1) Запросы обрабатываются веб-сервером по одному . Второй запрос не обрабатывается, пока не выполнится первый. Это «ASP.NET Development Server», работающий в однопоточном режиме? Могу ли я сделать его многопоточным (и должен ли я сделать его многопоточным или это откроет мир боли?)
2) Длительные запросы уничтожают последующие запросы. Учитывая, что запросы обрабатываются по одному, хотя я запускаю ajax-запрос сразу, почему некоторые запросы не выполняются даже прийти на веб-сервер? Это происходит после обслуживания длинного запроса. Например:
- 1-й запрос (маленький запрос) -
ответ хорошо
- 2-й запрос (большой
запрос) - ответ занимает минуту или
так, но действительно обслужен.
- 3-й запрос
(маленький запрос) - запрос никогда
приходит на сервер и JQuery делает
не сообщать об ошибке.
Я пытался увеличить время ожидания ajax, но безуспешно.
Обновление:
Я обнаружил в своем коде ошибку, которая приводила к путанице в URL-адресе к окончательному запросу, поэтому похоже, что это не имеет никакого отношения к длине запроса и тайм-ауту ajax (краснеет!). По пути я нашел полезный плагин ajaxManager, который отлично подходит для постановки в очередь запросов, если это то, что вам нужно (http://www.protofunc.com/scripts/jquery/ajaxManager/). Также, спасибо за правильное замечание об использовании сервера разработки ASP.NET для тестирования. сильно отличается от IIS.