2009-08-10 26 views
1

環境:ASP.NET,C#如何向客戶端(web)顯示巨大進程的狀態

我在寫一個web程序,將12個表導出到另一個數據庫。當用戶點擊「導出」按鈕時,導出過程就會開始。事情是,我喜歡向客戶展示一些消息,例如「準備......,刪除舊記錄......,導出...,導出已完成」。

但現在,一旦12個表完成,它就會顯示所有狀態。

請指導我如何做到這一點。

回答

0

試試這個

把這個C# 和每個過程調用ajavascript功能

Page.RegisterClientScriptBlock( 「1」, 「警報( '添加到表,現在')」);

2

做一個漫長的過程一樣,這是一個網頁上可能不是一個好主意,你將需要改變頁面等

超時設置,而建立一個Windows服務,做所有的工作。然後,您可以使用頁面初始化該過程。該服務可以更新頁面讀取的某些狀態。通過這種方式,頁面的工作量很小,即啓動進程並輪詢狀態更新。這可以通過簡單的jquery/ajax調用完成。

0

使用javascript定時器來定期從狀態頁面或服務加載內容。

計時器是相當簡單:

setTimeout('checkProcessStatus()', waitTime); 

更新本身取決於您選擇高科技的 - 例如,如果使用MVC和jQuery:

function checkProcessStatus() { 
    //dynamically add the html from the status page to <div id="taskStatusPanel" 
    $('#taskStatusPanel').load('export/status/' + taskId); 

    //set timer to call this again 
    setTimeout('checkProcessStatus()', waitTime); 
} 

然後ExportController.Status行動將返回一個簡單的顯示當前狀態的HTML視圖。

相關問題