Timer コントロール

ASP.NET AJAX Timer コントロールは、定義された間隔でポストバックを実行します。Timer コントロールと UpdatePanel コントロールを組み合わせて使用すると、定義された間隔で部分ページ更新を有効にできます。Timer コントロールを使用してページ全体をポストすることもできます。

Timer コントロールが正常に機能するためには、web.config ファイルに特定の設定が必要です。このコントロールを使用する際に、サイトに必要な web.config ファイルが存在しない場合、コントロールが表示されるはずのページの [デザイン] ビューにエラーが表示されます。[デザイン] ビューでその状態のコントロールをクリックすると、Microsoft Expression Web のオプションが表示されて、新しい web.config ファイルを作成するか、既存の web.config ファイルを更新するかの選択を求められます。

シナリオ

Timer コントロールは、次の操作を行う場合に使用します。

  • Web ページ全体を更新するのではなく、1 つまたは複数の UpdatePanel コントロールのコンテンツを定期的に更新する。

  • Timer コントロールでポストバックが発生するたびにサーバーでコードを実行する。

  • 定義された間隔で Web ページ全体を Web サーバーに同期的に送信する。

背景

Timer コントロールは、Web ページに JavaScript コンポーネントを埋め込むサーバー コントロールです。JavaScript コンポーネントは、Interval プロパティで間隔として定義された時間が経過した時点で、ブラウザーからのポストバックを開始します。サーバーで実行されるコードに Timer コントロールのプロパティを設定すると、それらのプロパティが JavaScript コンポーネントに渡されます。

Timer コントロールを使用するときは、ScriptManager クラスのインスタンスを Web ページに含める必要があります。

Timer コントロールによってポストバックが開始されると、Timer コントロールはサーバーで Tick イベントを発生させます。Tick イベントのイベント ハンドラーを作成して、ページがサーバーにポストされるときにアクションを実行できます。

ポストバックが発生する頻度を指定するには、Interval プロパティを設定します。Timer をオンまたはオフにするには、Enabled プロパティを設定します。Interval プロパティはミリ秒単位で定義され、既定値は 60,000 ミリ秒 (60 秒) です。

Noteメモ :

Timer コントロールの Interval プロパティ値を小さく設定すると、Web サーバーに対する大量のトラフィックが生成される可能性があります。Timer コントロールを使用して、コンテンツが必要な頻度で更新されるようにします。

複数の UpdatePanel コントロールを異なる間隔で更新する必要がある場合は、Web ページに複数の Timer コントロールを含めることができます。または、Timer コントロールの 1 つのインスタンスを、Web ページ内の複数の UpdatePanel コントロールのトリガーとすることもできます。

UpdatePanel コントロールの内部での Timer コントロールの使用

UpdatePanel コントロールの内部に Timer コントロールが含まれている場合、その Timer コントロールは UpdatePanel コントロールのトリガーとして自動的に動作します。UpdatePanel コントロールの ChildrenAsTriggers プロパティを false に設定することで、この動作を上書きできます。

UpdatePanel コントロールの内部にある Timer コントロールの場合は、ポストバックが完了するごとにのみ JavaScript タイミング コンポーネントが再作成されます。したがって、ページがポストバックから戻った時点から、間隔として指定された時間が経過した後、次のポストバックが発生します。たとえば、Interval プロパティが 60,000 ミリ秒 (60 秒) に設定されていて、ポストバックの完了に 3 秒かかる場合、次のポストバックは前のポストバックの 63 秒後に発生します。

UpdatePanel コントロールの外部での Timer コントロールの使用

Timer コントロールが UpdatePanel コントロールの外部にある場合は、その Timer コントロールを、UpdatePanel コントロールを更新するトリガーとして明示的に定義する必要があります。

Timer コントロールが UpdatePanel コントロールの外部にある場合、JavaScript タイミング コンポーネントは、ポストバックの処理中も継続して実行されます。たとえば、Interval プロパティが 60,000 ミリ秒 (60 秒) に設定されていて、ポストバックの完了に 3 秒かかる場合、次のポストバックは前のポストバックの 60 秒後に発生します。ユーザーには、UpdatePanel コントロールの更新されたコンテンツが 57 秒間だけ表示されます。

Interval プロパティは、次のポストバックの開始前に 1 つの非同期ポストバックを完了できるだけの値に設定する必要があります。ポストバックの処理中に新しいポストバックが開始された場合、最初のポストバックは取り消されます。

Timer コントロールの詳細については、MSDN ライブラリの「Timer コントロールの概要 Cc295201.xtlink_newWindow(ja-jp,Expression.40).png」を参照してください。

すべての Timer コントロール プロパティの説明については、MSDN ライブラリの「Timer プロパティ Cc295201.xtlink_newWindow(ja-jp,Expression.40).png」を参照してください。

関連項目

タスク

チュートリアル : UpdatePanel コントロールを間隔として指定された時間が経過するごとに更新する方法

概念

ASP.NET AJAX コントロール
部分ページ レンダリングの概要
ScriptManager コントロール