asp.netページライフサイクル詳細


Aspp.netはマイクロソフト.Net戦略の一部です。これは以前のAspに対して大きく発展し,多くの新しい機構を導入した。この文章はAsp.netページのライフサイクルについて皆さんに初歩的な紹介をします。皆さんをよりよく、より柔軟にAsp.netを操作できるように指導します。ウェブページの取得要求(おそらくユーザによって提出されたものであり、ハイパーリンクによって完了されたものでもある)がWebサーバに送信されると、このページは作成から処理までの一連のイベントを実行する。私達がAsp.netページを創立しようとした時、この実行周期は考慮する必要がないので、それは自業自得です。しかし、正確に操作されると、ページの実行期間は有効で強力なツールになります。多くの開発者がAsp.netのページとユーザーコントロールを作成している時に発見しました。全体の過程で何が起こっているかを知ると、いつ発生するかは全体の任務を完成するのにとても重要な助けになります。ここではAsp.netページの作成から処理完了までの10のイベントを紹介します。また、これらのイベントに自分のコードを追加して、予定通りの効果を得る方法を示します。
一.オブジェクトのページを初期化するコントロール(およびページ自体)は、最初に正しい初期化が必要です。あなたのC〓〓のファイルの構造関数の中ですべての対象(図1のようです)に名声を持つことを通して、ページはどれだけの対象とそれらのタイプを創建するべきなことを知っています。すべてのオブジェクトがあなたのコンストラクションで有名になると、クラス、方法、イベント、または属性を継承してそれらを訪問することができます。しかし、いくつかのオブジェクトがAspxファイルで指定されたコントロールの中にある場合、これらのコントロールには属性がありません。同時に、コードを介してそれらにアクセスすると、これらのコントロールのインスタンスは決定された作成順序がないため、予期しないエラーが発生します。また、OnInitを通じて初期化イベントを再ロードすることができます。
二.View stateデータを導入する初期化イベント後、すべてのコントロールはそれらのIDを参照してアクセスすることができます。LoadView Stateというイベントでは、すべてのコントロールが最初の属性を取得します。Viewstate属性。このプロパティは最終的にサーバに戻ります。このページはすでにユーザによってアクセスされたかそれともまだユーザによって訪問されているかを判断します。View state属性は「名前/値」ペアの文字列で保存されています。コントロールのテキストや値などの情報が含まれています。この属性は、隠しコントロールの値属性に格納され、要求ページで伝達されます。この方法はAsp 3.0の維持よりも、ページの状態を判断する方法がとても進歩しました。また、LoadView Stateイベント関数を再読み込みして、対応するコントロールに値を設定することができます。
三.PostbackデータをLoadPostDataで処理してページ作成のこの段階において、サーバーはページ上のコントロールに提出されたフォームデータ(Asp.netでpostbackデータと呼ぶ)を処理します。一つのページがフォームを提出すると、フレームワークは、データを提出したコントロールごとにIPost BackDataHandlerインターフェース動作を実行します。その後、ページはLoadPostDataイベントを実行し、ページを解析し、IpostBackData Handlerインターフェース操作を実行したコントロールを見つけ、適切なpostbackデータでこれらのコントロール状態を更新します。Aspp.netは、NameValue集中の「名前/値」ペアと各コントロールの固有IDマッチングによって実現される。したがって、Asp.netのページではコントロールごとに一意のIDが必要であり、いくつかのコントロールが共にIDを持つことができない場合があります。ユーザーがカスタマイズしたコントロールの中でも、フレームはそれぞれ固有のIDを付与します。LoadPostDataイベントの後、次のRaise PostData Changedイベントを実行します。
四.導入対象はロードイベントで、対象はすべて実装されました。すべてのオブジェクトは初めてDOMページ(Asp.netではコントロールツリーと呼ぶ)に配置され、コードまたは関連する位置で参照されます。このようにオブジェクトは、幅、高さ、値、視認性などのHtmlにおける属性値をクライアントから容易に得ることができる。ロードイベントではもちろん、コントロール属性の設定などの操作があります。このプロセスはライフサイクルの中で最も重要で、最も主要であり、ワンロードを呼び出してロードイベントを再ロードすることができます。
五.RaisePostBackChangedイベントは上に述べたように、このイベントはすべてのコントロールがIPost BackDataHandlerインターフェースを実行し、正しいpostbackデータに更新された後に発生します。このプロセスでは、各コントロールは、コントロールが更新されているかどうかを示すブール値を与えられます。その後、Asp.netはページ全体で更新されたコントロールを探して、Raise PostData Chendイベント操作を実行します。ただし、このイベントはすべてのコントロールが更新された後、ロードイベントが完了した後に行われます。このようにして、コントロールがpostbackデータによって更新される前に、他のコントロールはRaisePostData Chendイベントで手動で変更されないことを保証します。
六.クライアントPostBackイベントを処理し、postbackデータがサーバ端で発生したイベントを全部完了した後、postbackデータを生成したオブジェクトはRaise PostBackEventイベント操作を実行する。しかし、コントロールの状態の変化により、フォームをサーバに返すか、またはユーザが送信ボタンをクリックして、フォームをサーバに戻す場合があります。この場合、イベント駆動というオブジェクト指向(OOP)プログラミングの原則を具現するために、対応する処理コードがあるべきである。ブラウザに提示されるデータの正確性の要求を満たすために、一連のpostbackイベントでRaisePostBackEventイベントは最後に発生します。postbackで変更したコントロールは、実行機能関数が呼び出された後に更新してはいけません。つまり、予想されるイベントによって変更されたデータは最終ページに反映されるべきです。Raise PostBackEvent関数を修正することであなたの要求を満たすことができます。
七.予め提出した相手がオブジェクトを変更して保存を変更できる最後の瞬間は、このステップDDが予め提出されたオブジェクトである。この手順では、コントロールの属性、コントロールツリーの構造などを最後に変更できます。また、Asp.netの変更は考慮しなくてもいいです。この時はすでにデータベースからの呼び出しとview stateの更新を離れました。このステップの後、オブジェクトに対するすべての変更が最終的に確定され、ページのview stateに保存できなくなりました。OnPresRenderを通じてこのステップをリロードすることができます。
八.View Stateを保存するすべてのページコントロールの変更が完了したらview stateが保存されます。像の状態データはまだ隠しコントロールに保存されています。Htmlに表示されるオブジェクトの状態データもここから取得します。SaveView Stateイベントでは、その値がview stateオブジェクトに保存されますが、このときはページ上でコントロールの変更ができなくなります。SaveView Stateを使ってこのステップをリロードできます。
九.Html運用Htmlでブラウザに出力するページを作成するとRenderイベントが発生します。Renderイベント中に、ページがオブジェクトを呼び出してHtmlに渡す。それから、ページはHtmlの形式でユーザーのブラウザにアクセスすることができます。Renderイベントを再読み込みすると、開発者はカスタムHtmlコードを作成して、もとに生成したHtmlを無効にして、新しいHtmlに従ってページを整理することができます。Render方法は、Html TextWriterオブジェクトをパラメータとして使用し、Htmlをブラウザ上にウェブページで表示します。この時もいくつかの修正動作ができますが、クライアントの変化だけです。Renderイベントを再読み込みできます。
十.廃棄対象はHtmlに提出した後、すべての対象は廃棄されるべきです。Disposeイベントでは、このページを作成する際に作成したすべてのオブジェクトを廃棄するべきです。この場合、すべての処理が完了しましたので、残りのオブジェクトはすべてエラーが発生しません。ページオブジェクトも含めて。Disposeイベントをリロードできます。
全文は以上を総括してAsp.netページのライフサイクルの中の10の事件です。私たちはAsp.netページを要求するたびに、同じプロセスを経験しています。初期化対象から廃棄対象まで。Asp.netページの内部運行の仕組みを知ることによって、コードを作成したり、デバッグしたりする時にもっと余裕があると思います。