Мне нужно обновить пару старых классических страниц asp & mdash; search.asp
страница, которая предоставляет простую форму, которая затем публикуется на results.asp
странице. Одним из параметров формы на странице поиска является выпадающий список (<select
) для «формата». Если пользователь выбирает формат Excel, страница результатов просто устанавливает для Response.ContentType значение application/vnd.ms-excel
и добавляет заголовок размещения содержимого, чтобы задать имя файла и сделать его вложением. Вот и все: это хорошо для того, чтобы потом правильно отображать html, и это, как правило, довольно неплохо работает.
Все это работает довольно хорошо, кроме одной вещи. Причиной использования опции Excel является то, что в этом случае пользователи действительно хотят видеть до 10 000 элементов или даже больше за один поиск. Они будут использовать Excel, чтобы сделать дополнительный анализ результатов. Таким образом, операция поиска обычно занимает чуть более минуты, и я не могу это изменить.
Пользовательский опыт в эту минуту не идеален. Мало того, что пользователь просто сидит там, практически не получая обратной связи, часто достаточно результатов, что страница переполняет буфер ответов. Это означает, что страница должна периодически обновляться, и, следовательно, файл начинает загружаться сразу же, но менеджер загрузки не может самостоятельно предоставить значимую обратную связь. Моя миссия - улучшить ситуацию.
Первый шаг - просто показать простое сообщение processing...
на странице поиска при отправке формы, и я могу сделать это достаточно легко. На самом деле, он делал это уже для опции формата «HTML». Проблема в том, что при загрузке файла Excel я не знаю, как сказать что-либо о загрузке, поэтому я могу снова скрыть сообщение, а существующая реализация вообще не предоставляет никаких отзывов о ходе загрузки. Есть идеи? Если я могу просто запустить функцию javascript после завершения загрузки, я могу подключить к этому практически все, но я пока не могу этого сделать.
Обновление:
Я переформулировал вопрос, чтобы попытаться представить проблему более четко.