[ ASP.NET ] Ajax Timer コントロールで自動ポストバック

Pocket

ここでは、Ajax Timer コントロールでの自動ポストバックについて掲載しています。

スポンサーリンク

まずは、2つの画面更新の方法で、その時に発生するサーバ側のイベントについて確認します。

  1. ブラウザで最新表示 ( F5 ) を行う
  2. ヘッダーの meta タグの refresh で自動更新を行う
meta タグの refresh による自動更新
    <head runat="server">
        <meta http-equiv="refresh" content="10" />
        <title>refresh 自動更新</title>
    </head>

結果は、meta タグによる自動リフレッシュの場合はポストバックではないと ASP.NET で判断されました。 F5 による最新表示では、ポストバックされて現在のページが表示されている場合はポストバックとして扱われ、ポストバックではない状態で表示している場合はポストバックではないと扱われています。

Ajax Timer コントロール

Ajax タイマーコントロールは主に、UpdatePanel と一緒に使われます。画面の一部分を自動更新する場合に主に使用されますが、画面全体に適用することで通常のポストバックを定期的に発生させることができます。下記が ASPX ファイルのサンプルとなります。Interval プロパティの単位はミリ秒です。

自動ポストバックを発生させるサンプル

<form id="form1" runat="server">
<div>
        <asp:ScriptManager ID="ScriptManager1" runat="server" ></asp:ScriptManager>
        <asp:Timer ID="Timer1" runat="server" Interval="10000"></asp:Timer>        
</div>
</form>

Timer コントロールを使用した場合は、ブラウザの最新表示や、meta タグの自動リフレッシュとは異なり、ASP.NET ではポストバックとして認識されます。また、Timer.Tick イベントハンドラが定義されていれば、イベントハンドラも呼び出されます。

MEMO
  • 以前確認したときは Ajax Extensions Timer というように拡張機能でしたが、現在では標準機能として使用できるようです。それにあわせて投稿内容を一部修正しました。
  • このブログの favicon は「きん肉まん」のサンシャインの胸の太陽のマークがつぶれた画像を使用しています。だからどうしたとは言わないでください。
参考
スポンサーリンク


Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>