ブラウザに対してサーバーのイベントを更新して描画する (進捗表示ダイアログ?ASP.NET Webアプリケーション)

ブラウザに対して、サーバー側のイベントを更新して描画することが出来ると便利ですね。

たとえば、何か100個のある作業をサーバー側が行っていたとして、現在、「100個中35個目を処理中です」みたいな表示って出来るんでしょうか?

ちょっと調べてみました。

スポンサーリンク

サーバーのイベントをブラウザにプッシュは出来ない

調べてみる限り、サーバーのイベントをブラウザに対してプッシュ(push)は出来ないようです。

ブラウザからのプル(pull)要求に対してサーバーは情報を提供するだけです。

よって、「ブラウザに対して、サーバー側のイベントを更新して描画する」と同じことを実現するには、数秒おきに UpdatePanel をリフレッシュすればよいようです。

サンプルコードは次の通りです。

このようにすれば、5秒おきに DateStampLabel が更新されるようになります。

Timer は不要になったときにオフにしておかないと、ずっと動き続けてしまいます。

スポンサーリンク
スポンサーリンク
Translate »