Я использую сервер Webphere. Я выполняю загрузку файла через сервлет, используя методы Apache FileUpload.Запрос Ajax во время загрузки файла занимает много времени
Я присоединяю слушателя к этому файловому загрузочному файлу, который обновляет поле «процент», обозначающее, какой процент запроса был обработан. Запрос направляется в iframe (целью формы является iframe), так что страница, на которой запущен запрос, не должна ждать завершения ответа и, следовательно, не будет показывать пользователю только пустую страницу. Я также добавляю ссылку на слушателя прогресса на сеанс.
С страницы JSP, как только я запускаю отправку в форме, через 1 секунду, а затем каждую секунду я запускаю запрос ajax, который отправляется на сервлет, который смотрит на ProgressListener и отвечает полем процента. Процесс работает нормально, но на Websphere иногда этот запрос Ajax может занять до 30 секунд! Я тестировал одно и то же на простом сервере Tomcat, и там запрос/ответ выдается за секунду.
Что может быть неправильным? Это настройка сервера?
Спасибо,
Edit: Код внутри сервлета, который получает процент от сессии работает как только запрос был сделан. Кажется, узкое место в доставке запроса обратно в клиентский браузер.
Проблема заключается не в том, что JSP скомпилирован/предварительно скомпилирован. Я загрузил 264 МБ-файл, который сгенерировал более одного вызова ajax, вторым вызовом ajax, любая компиляция уже выполнена. –
Итак, используйте firebug, чтобы профилировать ваш вызов ajax в браузере, используйте Fiddler для отслеживания трафика и профиля сервера, чтобы узнать, что происходит на сервере. Между ними вы должны найти проблему. –