Share via


部分ページ レンダリングの概要

部分ページ レンダリングでは、ポストバックの結果としてページ全体を更新する必要がありません。ページ全体ではなく、変更された個別の領域のみが更新されます。その結果、ポストバックのたびにページ全体が再読み込みされることがなく、Web ページに対するユーザー操作がよりシームレスになります。ASP.NET を使用すると、クライアント スクリプトを記述することなく新規または既存の ASP.NET Web ページに部分ページ レンダリングを追加できます。

シナリオ

既存の ASP.NET アプリケーションを拡張し、AJAX (非同期 JavaScript および XML) 機能を組み込んだ新たな ASP.NET アプリケーションを作成できます。ASP.NET の AJAX 機能を使用すると、完全にサーバーベースの Web アプリケーションに比べて利点が多い豊富な機能を持つ Web アプリケーションを構築できます。AJAX 機能は以下の目的に使用します。

  • より豊富な機能を持ち、ユーザー アクションへの応答が良く、従来のクライアント アプリケーションと同様に動作する Web ページを使用して、ユーザー エクスペリエンスを向上させる。

  • ページ全体の更新を削減し、ページのちらつきを回避する。

  • クライアント スクリプトを記述することなくブラウザー間に互換性を持たせる。

  • クライアント スクリプトを記述することなく AJAX スタイルのクライアント/サーバー通信を実行する。

  • ASP.NET AJAX Control Toolkit のコントロールおよびコンポーネントを使用する。

  • カスタム ASP.NET AJAX コントロールを開発する。

部分ページ レンダリング機能

部分ページ レンダリングは、ASP.NET のサーバー コントロールおよび Microsoft AJAX ライブラリ内のクライアント機能に依存しています。ASP.NET AJAX サーバー コントロールを使用しているときには、部分ページ レンダリングは自動的に提供されるため、Microsoft AJAX ライブラリを使用してこの機能を有効にする必要はありません。ただし、クライアント ライブラリで公開されている API を使用すると、追加の AJAX 機能を利用できます。

部分ページ レンダリングをサポートする ASP.NET の主な機能は次のとおりです。

  • ASP.NET サーバー コントロールと同様に動作する宣言モデル。多くのシナリオでは、宣言型マークアップのみを使用して部分ページ レンダリングを指定できます。

  • 部分ページ更新に必要な、基になるタスクを実行するサーバー コントロール。これには ScriptManager コントロールおよび UpdatePanel コントロールが含まれます。

  • ASP.NET AJAX サーバー コントロールと一般的なタスク用の Microsoft AJAX ライブラリ間の統合。これらのタスクには、ユーザーによるポストバック取り消しの有効化、非同期ポストバック中のユーザー設定による進行状況メッセージの表示、および同時に実行される非同期ポストバックの処理方法の決定が含まれます。

  • 部分ページ レンダリングのエラー処理オプション。これにより、ブラウザーでのエラーの表示方法がカスタマイズできるようになります。

  • ASP.NET の AJAX 機能に組み込まれているブラウザー間の互換性。サーバー コントロールを使用するだけで、適切なブラウザー機能が自動的に起動します。

背景

ASP.NET Web サーバー コントロールを使用して構築された一般的な Web ページは、ボタンのクリックなどページでのユーザー操作によって開始されるポストバックを実行します。その応答で、サーバーは新しいページをレンダリングします。多くの場合、前のポストバックから次のポストバックまでの間に変更されなかったコントロールとテキストも再レンダリングされます。

部分ページ レンダリングによって、ページの個別の領域を非同期的に更新し、ユーザーに対するページ応答を向上することができます。ASP.NET AJAX Web サーバー コントロールを使用して部分ページ レンダリングを実装できます。オプションで、Microsoft AJAX ライブラリの API を使用するクライアント スクリプトを記述することもできます。

部分ページ更新用のサーバー コントロール

ASP.NET Web ページに AJAX 機能を追加するには、更新するページの個別のセクションを特定します。次に、これらのセクションのコンテンツを UpdatePanel コントロールに含めます。HTML または他の ASP.NET コントロールを UpdatePanel コントロールのコンテンツとして使用できます。他のコントロールを追加する場合と同様に、UpdatePanel コントロールをページに追加できます。たとえば、Microsoft Expression Web で [ツールボックス] パネルから Web ページにドラッグするか、またはページの [コード] ビューでコントロールのコードを追加します。

既定では、更新パネル (子コントロール) 内のコントロールから発生したポストバックは、自動的に非同期のポストバックを開始し、部分ページ更新を実行します。更新パネルの外部のコントロールで非同期ポストバックを実行し、UpdatePanel コントロールのコンテンツを更新するように指定することもできます。非同期ポストバックを発生させるコントロールはトリガーと呼ばれます。

非同期ポストバックは、同期ポストバックと類似した動作をします。サーバー ページのライフ サイクル イベントはすべて発生し、表示状態とフォーム データは保持されます。ただし、レンダリングの段階では、UpdatePanel コントロールのコンテンツだけがブラウザーに送信されます。ページの残りの部分は変更されないままです。

部分ページ レンダリングをサポートするには、ページに ScriptManager コントロールを含める必要があります。ScriptManager コントロールにより、ページ上のすべての更新パネルとそのトリガーが追跡されます。サーバーでの部分ページ レンダリングの動作が調整され、非同期ポストバックの結果としてレンダリングするページのセクションが決定されます。

部分ページ レンダリングの詳細については、MSDN ライブラリの「部分ページ レンダリングの概要 Cc295299.xtlink_newWindow(ja-jp,Expression.40).png」を参照してください。

関連項目

タスク

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

概念

UpdatePanel コントロール
ScriptManager コントロール
チュートリアル : 個別に更新する 2 つの領域を持つページを作成する方法