asp.net異なるページ間のデータ転送の様々な方法

2836 ワード

1.Get(QueryString明示的な伝達を使用する)方式:urlの後ろにパラメータと。特徴:簡単で便利です。短所:文字列の長さは最大255文字です。データがurlに漏れています。適用データ:簡単、少量、キーデータ。適用範囲:自分に伝達し、他の目標ページに伝達する。2つのページ間でデータを転送する場合によく使われます。使い方:例えば、urlの後に?UserID=...ターゲットページにジャンプし、ターゲットページは、サーボ端でRequest.QueryString[Input Text]で指定されたパラメータ値を取得します。
2.Post方式:共通の方式。formで提出します。特徴:一番よく使う方法。常用技巧は隠し領域にデータを存在させてformで提出することです。適用データ:大量のデータ、ファイルアップロードを含みます。適用範囲:Get方法と使い方:クライアントformでactionターゲットを指定した後、submit、asp.netのサーボ端でserver.Transferを使用して提出します。サーボ端でRequest.Form[FormFieldID]で取得します。
3.ページオブジェクトの属性方式:asp.net特有の方式。HttpContectを利用して、要求したページの情報を取得します。特徴:オブジェクトを直接記憶することができます。短所:強制的に変換するタイプが正しいことに注意します。適用データ:各種データ。適用範囲:ページ間で複雑なデータを転送します。使用法:Conttext.Handlerが要求されたページに変換した例を取得し、その後、そのformのフィールドや属性に簡単にアクセスすることができます。その中のContectはHttpContectオブジェクトを指し、Handlerはその属性であり、Contect.Handlerの意味はソースページクラスを作成するための例示的変数として理解され、この例を得ると、直接にその中の属性とPublic方法にアクセスすることができます。
4.クッキー方式:データをクライアントに存在させるための古典的な方法。短所:安全性が低い、クライアントの設定に制限されている、一つのサイトは20個のcookieだけを残しています。容量は4096バイトです。有効期間:カスタムまたはユーザーによって適用データをクリアする:ユーザーのセッションデータ(一般的にはユーザー名、ユーザーの個人化設定情報など)適用範囲:単一ユーザー、サイト全体のページ使用法:Request.Coookies(読み取り情報)、Reponse.Cookie(書き込み情報)、またはHttpCookie Collectionを用いて直接Cookieオブジェクトを作成する。
5.Session方式:ユーザーデータをサーボ端に格納します。特徴:asp.netでsessionの保存方法、位置、SessionIDの保存はクッキーに依存するかどうか。   オブジェクトを直接記憶することができます。短所:asp.netには有効期限があります。ユーザー活動時間+カスタマイズ遅延。適用データ:ユーザ固有情報。適用範囲:単一ユーザ、サイト全体のページ。使い方:セッション[[Collection Name]=value/object;
6.Cache方式:ユーザデータをサーボ端データキャッシュに格納する。特徴:効率を大幅に向上させることができます。オブジェクトを直接記憶することができます。短所:データの更新が遅れています。有効期間:アプリケーションライフサイクルまたはカスタマイズ。適用データ:すべてのページ、すべてのユーザが共有できるデータです。使い方:Cache[Collection Name]=value𞓜oject;
7.Applition方式:データをここに保存すると、グローバル変数に相当します。特徴:オブジェクトを直接記憶することができます。局全体の共有データ。有効期間:アプリケーションライフサイクル。適用データ:すべてのページ、すべてのユーザが共有するデータ。使い方:Apple[Collection Name]=value𞓜oject;
8.View State方式:asp.net特有のメカニズムで、ページの状態を回復するために使用されます。特徴:ページの各コントロールとその保存データを順番に並べてnameを_とする。View Stateの隠し領域にあります。短所:HTMLが存在し、安全性が低い。暗号化と検証は設定できますが、データ量が大きくなり、効率が悪くなります。適用データ:ページPostBackは保存するデータが必要で、データがあまりにも大きいので、ページの送信効率に影響します。適用範囲:ページ自体のデータ保存。使い方:View State[Collection Name]=value;
9.Static方式:静的変数にデータを保存します。特徴:効率の向上に役立つ。短所:うまく使えないとユーザーやページ間のデータが乱れ、大きな危険を引き起こします。一度だけの値を指定してください。この値は個々のユーザのために変更することは絶対に禁止されます。適用データ:すべてのユーザが共有するデータ。適用範囲:このようなすべてのページ例。使用法:クラスで静的変数を宣言します。整理:ページ自体のデータ保存にはView State、static変数があります。ページ間のデータ転送は、一般的にget、post、HttpContectを使用しています。もちろん、自身のデータ保存に使うこともできます。単一ユーザのすべてのページデータは、一般的なsession、cookieを共有し、もちろん、上記の2つのケースにも適用され得る。アプリケーション全体(すべてのユーザが使用するページ)のデータ共有には、一般的なApple、cache、static変数が使用されます。
まとめ:    もちろん柔軟な応用を通じて問題を解決することができますが、適切な選択をするにはGetとSessionの乱用がよくあります。Requestを使用するときは、Getメソッドから送られてきたパラメータがQueryStringから取り寄せられ、PostはFormから取り、cookieはCookiesから取るように指定します。Request[]で集合して、以上の何種類かは全部取れますが、性能上の浪費をもたらしました。元々はForm集合の中で、QueryString、Form、Cookiesなどの集合を経てやっと取り出しました。
ps:コンピュータの世界では、サービスを提供する側をサーボエンドと呼びますが、サービスを受ける側をクライアントと呼びます。