Лучший пользовательский опыт для сайта в asp.net MVC - PullRequest
2 голосов
/ 12 декабря 2010

У меня есть страница, которая загружает большой HTML-файл из другого домена, а затем передает его пользователю. Файл составляет около 100 КБ - 10 МБ и обычно занимает около 5 минут. Что вы думаете о том, чтобы сделать что-то подобное, чтобы улучшить пользовательский опыт?

  • скачать файл
  • если файл не загружается в течение 10 секунд, отображается страница, которая сообщает пользователю, что файл загружается
  • если сервер завершит загрузку за 1 секунду, он будет обслуживать загруженный html

это можно сделать? мне нужно использовать функцию асинхронности?

Обновленный вопрос: загруженный файл является HTML-файлом

Ответы [ 3 ]

1 голос
/ 12 декабря 2010

Чтобы обеспечить «асинхронную» загрузку файла, попробуйте хитрость, которую использует Google: создайте скрытый iframe и установите его источник для файла, который вы хотите загрузить.После этого вы все равно сможете запустить javascript на исходной странице, пока файл загружается через iframe.

0 голосов
/ 12 декабря 2010

Звучит так, как будто вам нужно использовать страницу ожидания, которая периодически обновляется и отображает состояние вашей загрузки.Загрузка может быть запущена в отдельном потоке, например, с помощью System.Threading.Task.

0 голосов
/ 12 декабря 2010

Я думаю, вы должны:

  1. Немедленно верните HTML-страницу пользователю, чтобы сообщить ему, что передача началась.
  2. Запустите загрузку из другого домена в отдельном процессе на вашем сервере.
  3. Несколько раз перезагрузите HTML-код из шага 1, чтобы вы могли проверить, завершена ли уже загрузка, и, возможно, дать ETA или обновление пользователю.
  4. Вернуть ссылку пользователю после завершения первоначального перевода.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...