2009-10-28 82 views
0

我在ASP.NET中開發了一個Web應用程序,用戶可以做的事情之一是一項長期任務。基本上,該任務將收集數據庫中的所有數據並將其轉換爲特定的XML格式。然後這個XML再次作爲數據的「快照」存儲在數據庫中。 (因此,它不會將XML返回給用戶。)在長時間的動作中向用戶提供反饋

不幸的是,此任務需要幾分鐘的時間來處理。這不是一個真正的問題,除非用戶可能變得不耐煩,並且可能會嘗試製作第二個甚至第三個快照,因爲似乎沒有任何事情發生。

所以我需要一個簡單的方法來向用戶提供一個簡單的反饋,通知他當前的動作,所以他知道應用程序正在做什麼。 「快照」構建器已包含一個事件,該事件將生成有關其當前操作的消息,因此我需要做的就是找到一種方法將此事件連接到向用戶提供實時反饋的方式。我不能使用第三方組件,只有屬於VS2008的組件。 (管理層非常擔心第三方代碼可能存在許可問題。)所以我必須自己寫一些東西,在Ajax中。

我是一位經驗豐富的程序員。不過,這將是我的第一個Ajax項目,所以我需要清楚地解釋它的工作原理。那麼,我如何通過簡單易懂的步驟向用戶提供這樣的反饋?

回答

2

要對此請求使用AJAX,那麼您應該查看UpdateProgress control並將AssociatedUpdatePanelID設置爲初始化長時間運行過程的頁面上的UpdatePanel的Id。

Here是使用的UpdatePanel

Here的一個很好的例子是一個Visual Studio解決方案演示如何使用的UpdateProgress和UpdatePanel的一起

我曾經在一個項目中也有類似的問題,AJAX是可用的和我之前通過使用BusyBox解決了這個問題,結果在我的應用程序中工作得非常好。

2

好吧,既然你是新人,我不會讓你很難學習先進的更有效的方法,但你可以在asp.net ajax庫中使用UpdateProgress。當ajax在後臺執行某些操作時,UpdateProgress將顯示一條自定義消息,通知用戶該頁面正在執行某些操作。

所以你基本上可以使用UpdatePanel來啓用你的asp.net頁面中的ajax和UpdateProgress來向用戶顯示進度。

可以在視頻格式找到更多的信息:http://www.asp.net/learn/ajax-videos/

但是如果你想學習不同的方式來推進:

我不建議你使用微軟的方式,使阿賈克斯在你的ASP。網頁,而是可以在頁面中使用jQuery ajax和Web服務來提供更高效更快的頁面。

更多:jQuery Ajax Library

微軟的Visual Studio中的jQuery所以在JQuery中編寫代碼提供智能感知現在更容易。

P.s:我推薦你是完全免費且開源的。

+0

我自己沒有使用開源的問題,但最終產品是一個閉源項目,我們可能會分發給其他人。因此,我們需要特別小心可能發生的許可衝突。因此,未經管理層批准,我們不使用任何第三方產品。 (不管它是否是開源的,他們想先檢查它的許可證。) – 2009-10-28 10:30:10

相關問題