Ajax-запросы обслуживаются одним потоком сервера? - PullRequest
0 голосов
/ 07 апреля 2011

Я сделал простую инфраструктуру ajax на http://www.iqp.vn, и я разрешаю пользователям делать много запросов ajax или отменять их.

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

Я также использую скрытую форму (iframe), чтобы позволить пользователю загружать файлы в ajaxстиль, и когда пользователь загружает большой файл и отменяет запрос (== сбросить iframe на клиенте) и щелкает, чтобы сгенерировать другой запрос, я вижу, что более поздний запрос всегда ожидает завершения первого запроса на загрузку.

Может ли кто-нибудь помочь мне с этим, пожалуйста, я подумал, используя ajax, и (если возможно) с многопоточной обработкой на сервере, я могу получить очень хорошие эффекты на клиенте.

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Ajax-запросы обрабатываются как обычные запросы. Вы должны проверить:

  • Ожидает ли вызов ajax, чтобы другой абонент завершил работу, прежде чем звонить (на стороне клиента)?
  • Реализуете ли вы какой-либо механизм блокировки на сервере?
  • Может быть, все потоки в пуле потоков заняты другими запросами

Просто для справки, этот плагин jQuery может загружать много файлов одновременно: http://aquantum -demo.appspot.com / file-upload

0 голосов
/ 07 апреля 2011

Это поведение будет зависеть от конфигурации вашего веб-сервера. Если у вас есть только один поток, назначенный пулу приложений, то этот поток будет обслуживать каждый запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...