Internet Explorer показывает 404, но веб-приложение все еще работает

Я разрабатываю веб-приложение с Spring, Hibernate и Informix...

У него есть процесс импорта данных, который занимает до 30 минут, и пока пользователь ждет его завершения, Internet Explorer показывает ошибку, сообщающую пользователю, что страница не может быть отображена, но веб-приложение все еще работает (оно продолжает писать журналы и импорт данных).

Почему это происходит? Это потому, что отображение полученного jsp занимает так много времени?

Как я могу этого избежать?

Спасибо.


person diminuta    schedule 14.01.2013    source источник
comment
404 для конкретного ресурса не найден. Пытается ли пользователь получить доступ к тому же ресурсу, который еще не готов (до 30 минут)? И правда, 30 минут?   -  person TJ-    schedule 14.01.2013
comment
Такой импорт предпочтительно выполнять с использованием AJAX (т. е. фонового потока). Невозможно сказать вам, как это может быть реализовано конкретно в вашем случае, потому что это очень распространенное решение, зависит от конкретного фреймворка.   -  person Andremoniy    schedule 14.01.2013
comment
Это произошло во время стресс-теста, вынудившего приложение импортировать тысячи данных с процессом, который запускается только один раз в месяц, и да, это занимает 30 минут... нет другого способа импортировать данные, необходимые приложению... он обрабатывает медицинские данные...   -  person diminuta    schedule 14.01.2013
comment
Действительно ли приложение отвечает ошибкой 404 или IE просто истекает? Если вы сделаете запрос во время загрузки данных, я думаю, что ответа не будет.   -  person NickJ    schedule 14.01.2013


Ответы (1)


Ваш браузер ждет ответа 30 минут и показывает страницу с ошибкой, если в течение этого времени нет ответа. Существуют различные решения такой проблемы. Пример: это стресс-тест, поэтому вы можете запустить его ночью (или в другое время, когда серверы не работают), используя cron и командную строку «браузер» (например, wget) и сохраняя результаты во временную таблицу. Затем вместо запуска тестов из браузера вы можете показать результаты из этой временной таблицы.

Другая идея: из вашего браузера запустите фоновый поток, который будет заполнять временную таблицу и отображать частичные результаты с помощью кнопки «Обновить». Действие этой кнопки будет просто читать временную таблицу. Добавьте специальную запись, которая будет означать «конец тестов», и покажите «обновить», когда вы не найдете эту специальную запись.

person Michał Niklas    schedule 15.01.2013