2012-02-15 22 views
0

私はAsp.Netマスターページについて質問する質問が1つあります。マスターページとページのロードイベントで 私はAsp.Net - マスターページ - 不必要な呼び出しを避ける方法

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
    if (Session["UserName"] != null && Session["UserLastName"] != null) 
    { 
     lblDisplayName.Text = Session["UserName"].ToString() + " " + Session["UserLastName"].ToString() ; 
    } 
    } 
} 
のようなコード

マスターページが1ページに適用され、ページ2. を持って、私はページ1に2ページまたは2ページに1ページからリダイレクトするたびにそれが実行されますマスターページのページ読み込み。上記のコードは毎回実行されます。ユーザー名を1回だけ設定することはできません。

これらは避けることができますか?

ありがとう、 Mahesh。

+1

私はコードの3行がサーバー上に置かれている負荷の量を過大評価していると思います... –

+0

OPがPage_Loadまでどれだけのコードが実行され、 。 –

答えて

0

HTTPプロトコルがステートレスであるため、ASP.NETはステートレスです。したがって、ページ1のマスターページインスタンスは、ページ2に対して行われた要求を何も知らないため、ページロード時に毎回ラベルを再確立する必要があります。

パフォーマンスに関してこれについて質問している場合は、毎回ラベルを設定することについて心配しません。パフォーマンスの最大の問題は、次のような傾向があります。

  1. クライアントでダウンロードするのに時間がかかります。
  2. 非効率的なデータベースクエリ。
  3. 他にもありますが、それは別の話題です。
+3

httpプロトコルはステートレスです –

+0

入手しました ありがとうBrian Mains –

0

HTTPはステートレスプロトコルです。

あるページから別のページに転送すると、すべての状態情報が失われています。確かに、Web開発の多くは、ステートレスなプロトコルで状態のようなものを提供することを中心にしています。

私たちは、どこかのクッキーから、あるいはあなたの場合のようにセッションを引き出すことでこれを実現します。

つまり、ページが読み込まれると、それまでに行ったページは何もわかりません。したがって、毎回ユーザーを確認して設定する必要があります。

関連する問題