Предоставление обратной связи пользователю при длительных действиях - PullRequest
0 голосов
/ 28 октября 2009

Я разработал веб-приложение в ASP.NET, и одна из возможностей, которую может сделать пользователь, - долгая задача. По сути, эта задача будет собирать все данные в базе данных и преобразовывать их в определенный формат XML. Затем этот XML снова сохраняется в базе данных как «снимок» данных. (Таким образом, он не возвращает XML пользователю.)

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

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

К сожалению, я не могу использовать сторонние компоненты, только те, которые являются частью VS2008. (Руководство крайне обеспокоено возможными проблемами лицензирования со сторонним кодом.) Поэтому я должен написать что-то сам, в Ajax.

Я очень опытный программист. Тем не менее, это будет мой первый проект Ajax, поэтому мне нужно четкое объяснение его работы. Итак, как мне предоставить такую ​​обратную связь пользователю простым и понятным способом?

Ответы [ 2 ]

2 голосов
/ 28 октября 2009

Ну, так как вы новичок, я бы не стал настойчиво изучать более сложные и эффективные способы, но вы можете использовать UpdateProgress в библиотеке asp.net asp.net. Когда ajax что-то делает в фоновом режиме, UpdateProgress покажет пользовательское сообщение, информирующее пользователей о том, что страница что-то делает.

Таким образом, вы можете в основном использовать UpdatePanel, чтобы включить ajax на своей странице asp.net, и UpdateProgress, чтобы показать прогресс пользователям.

Вы можете найти больше информации в видео формате: http://www.asp.net/learn/ajax-videos/

Но если вы хотите продвинуться в изучении различных способов:

Я бы не рекомендовал вам использовать способы Microsoft для включения Ajax на ваших страницах asp.net, вместо этого вы можете использовать jQuery ajax и веб-службы на своей странице для обслуживания более эффективных и быстрых страниц.

Подробнее: Библиотека jQuery Ajax

Microsoft Visual Studio предоставляет Intellisense для jQuery, поэтому теперь писать код в JQuery стало еще проще.

P.s: То, что я рекомендовал, вы абсолютно бесплатны и с открытым исходным кодом.

2 голосов
/ 28 октября 2009

Чтобы использовать AJAX для этого запроса, вам нужно взглянуть на UpdateProgress и установить для AssociatedUpdatePanelID идентификатор UpdatePanel на странице. это инициализирует длительный процесс.

Здесь является хорошим примером использования UpdatePanel

Здесь - это решение Visual Studio, демонстрирующее, как использовать UpdateProgress и UpdatePanel вместе

Однажды у меня была похожая проблема в проекте до того, как AJAX был доступен, и я решил ее, используя BusyBox , который, как оказалось, довольно хорошо работал в моем приложении.

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