Ajax-запрос во время загрузки файла занимает много времени - PullRequest
1 голос
/ 29 января 2010

Я использую сервер Webphere. Я выполняю загрузку файла через сервлет, используя методы Apache FileUpload.

Я присоединяю слушателя к этому FileUpload, который обновляет поле «процент», обозначающее, какой процент запроса был обработан. Запрос направляется на iframe (цель формы - iframe), так что страница, запустившая запрос, не должна ждать завершения ответа и, следовательно, не будет показывать пользователю только пустую страницу. Я также добавляю ссылку на слушателя прогресса в сеансе.

Со страницы JSP, как только я запускаю отправку в форме, через 1 секунду, а затем каждую секунду я запускаю ajax-запрос, который отправляется сервлету, который ищет ProgressListener и отвечает полем процента. Процесс работает нормально, но в Websphere иногда этот Ajax-запрос может занять до 30 секунд! Я протестировал то же самое на простом сервере Tomcat, и там запрос / ответ приходит через секунду.

Что может быть не так? Это настройка сервера?

Спасибо,

Редактировать : код внутри сервлета, который получает процент от сеанса, запускается сразу после выполнения запроса. Узкое место, похоже, заключается в доставке запроса обратно клиентскому браузеру.

1 Ответ

1 голос
/ 29 января 2010

У вас настроена websphere для компиляции и кэширования страницы jsp, или она перекомпилируется каждый раз?

Возможно, вы захотите использовать AOP, либо AspectJ, либо Spring, либо профилировщик, чтобы увидеть, что происходит с вызовом ajax, чтобы вы могли отслеживать, не меняя код на странице jsp.

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

Вы также можете посмотреть, поможет ли прекомпиляция страниц jsp. Этот урок должен быть полезен: http://publib.boulder.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=/com.ibm.commerce.samples.doc/tutorial/tdedeployjsp.htm

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