Как лучше всего хранить страницу ASP.NET до завершения длительной операции?[закрыто]

StackOverflow https://stackoverflow.com/questions/901954

Вопрос

Джаваскрипт?

Метатег обновить?

Response.Redirect (себе)

Server.Transfer (себе)

Панель обновления Ajax?

Это было полезно?

Решение

Давайте рассмотрим варианты:

Джаваскрипт?

Это работает нормально, пока пользователь не отключил его.

Метатег обновить?

Устаревший метод в пользу метода Javascript.Однако вы можете использовать его в качестве резервной копии, если пользователь отключил Javascript.

Response.Redirect (себе)

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

Server.Transfer (себе)

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

Панель обновления Ajax?

Работает нормально, пока пользователь не отключил Javascript.По сути, это то же самое, что и первый вариант, только Javascript сам выполняет запрос, а не позволяет браузеру выполнить запрос.

Другие советы

Если вы можете сообщить пользователю о каком-либо прогрессе, я предпочитаю использовать asxh и вариант a. вечная рамка.Добавьте немного Диалоговое окно пользовательского интерфейса jQuery и Индикатор выполнения пользовательского интерфейса jQuery и у вас есть блестящий способ удержать внимание пользователей, пока вы выполняете тяжелую работу на сервере.

Я привел пример кода на 874204 это демонстрирует технику.

Если вы не можете сообщить пользователю о прогрессе, я склонен по-прежнему использовать диалоговое окно пользовательского интерфейса и выводить сообщение «пожалуйста, подождите, обработка...» с веб-совместимым вращающимся GIF-изображением с двумя точками.

Ознакомьтесь с этой статьей на Асинхронные страницы.Вот еще пример из КодПроект включая асинхронные страницы и META-REFRESH.

Вы можете найти пример реализации такого рода функциональности в Beer House Starter Kit — http://www.asp.net/Downloads/starter-kits/the-beer-house/.

Вам будут полезны страницы SendingNewsLetter.aspx и SendNewsLetter.aspx.Однако это может быть излишним для ваших нужд — оно даже показывает ход длительной операции.

А как насчет использования AJAX WebModalAnchor выскочить окно с кнопкой отмены?

Надеюсь это поможет,

Счет

Я бы рекомендовал использовать Ajax и отображать UpdateProgress, чтобы пользователь знал, что он все еще работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top