2009-08-10 15 views
1

環境:ASP.NET、C#巨大なプロセスの状態をクライアント(ウェブ)に表示する方法

私は、12のテーブルを別のデータベースにエクスポートするWebプログラムを作成しています。ユーザが「エクスポート」ボタンをクリックすると、エクスポートプロセスが開始されます。事は、私はクライアントに "準備中、古いレコードを削除...、エクスポート中...、輸出完了"などのメッセージを表示するのが好きです。

今、12のテーブルが完成するとすべてのステータスを表示しています。

どうすればいいですか?

答えて

0

この

は、C# でこれを入れて試してみて

Page.RegisterClientScriptBlock( "1"、 "警告( '今テーブルに追加')")プロセスごとにajavascript関数を呼び出します。これは、Webページ上にあるように、長いプロセスを行う

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を表示したビュー。

関連する問題