2

asp.netでの長いプロセス中にユーザーにメッセージを送信するための最良の方法は何ですか。他の言語ではフラッシュメソッドがあり、asp.netにもそれがあることがわかりますが、それが最善の方法ですか?そうでない場合、他にどのようにこれを行うことができますか?

4

3 に答える 3

2

これを行う最善の方法は、長時間実行されるプロセスを実行する別のスレッドを生成し、メイン スレッドで ajax 呼び出しを実行して、長時間実行されるスレッドからステータスを要求し、必要に応じてステータスを表示することです。

これを詳しく説明している比較的優れた記事は、http ://www.devarchive.net/displaying_progress_bar_for_long_running_processes.aspx にあります。

于 2011-06-28T18:44:48.813 に答える
0

プッシュ通知フレームワーク (comet) http://pokein.codeplex.com/を使用する か、ステータスをデータベースに保存し、ページを更新してステータスを取得するか、たとえば jQuery.ajax() を使用してデータを取得するか、次のようなタイマーで UpdatePanel を更新します。 http://msdn.microsoft.com/en-us/library/cc295400.aspx

いずれにせよ、「進行状況」を現在のセッションまたはデータベースに保存して読み取る必要があります。通常、UI は処理スレッドと直接やり取りすることはありませんが、どちらも更新ステータスを含む何らかの中間媒体とやり取りします。

于 2011-06-28T19:03:30.807 に答える
0

Adam Tuliper が言ったように、プッシュ通知フレームワークが必要であり、最良の選択は Microsoft の SignalR です。ステータスをどこにでも保存したり、ポーリングを実装したりする必要はありません。SignalR は必要なものすべてをブラウザーにプッシュし、プロセスを (別のスレッドで) 開始した要求は HubContext クラスを介してクライアントに直接メッセージを送信します。詳細はこちらをご覧ください

于 2015-01-07T10:10:41.153 に答える