質問

サイトのパフォーマンスを改善したいと考えています。パフォーマンスが悪いためではなく、一般的な演習のためです。 asp.netサイトの通常の提案は、可能な限りビューステートを削除することです。これは、ページ上の各コントロールによって個別に、またはページ全体に対して実行できると考えています。

私の質問は、ページのビューステートを無効にすると、マスターページ上のコントロールのビューステートが停止することです(マスターページは実際にはページ上のコントロールであることがわかります)。

役に立ちましたか?

解決

はい、ページはページフローの発信者です。したがって、ページのビューステートを無効にすると、OnInitプロセスからビューステートのレンダリングが行われなくなります。より良い質問は、なぜマスターページのビューステートを無効にしても同じことになるのでしょうか?

他のヒント

ビューステートをすべて縮小する簡単な方法があります。

ステップ1.次のような新しいクラスを作成します:

Imports System  
Imports System.Web.UI

Public Class SessionPageStateAdapter
    Inherits System.Web.UI.Adapters.PageAdapter

    Public Overrides Function GetStatePersister() As System.Web.UI.PageStatePersister

        Return New SessionPageStatePersister(Page)

    End Function
End Class

ステップ2.プロジェクトにApp_Browsersフォルダーを追加します。

ステップ3.新しいdefault.browserフォルダーに、次のような新しい<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page" adapterType="[YourNamespaceGoesHere].SessionPageStateAdapter" />
</controlAdapters>
</browser>
</browsers>
ファイルを追加します。
<=>

今すぐページを実行すると、ビューステートのサイズが数バイトに低下していることがわかります。 SessionPageStateAdapterクラスは、ブラウザに提供される前にビューステートをインターセプトし、セッションステートでサーバーに保持します。クライアントに送信されるビューステートのビットは、ページがサーバーにポストバックされるときに元のビューステートを再構成するために使用される単なる識別子です。

この記事は役に立つかもしれません:
http://msdn.microsoft.com/en-us/library/ms972976。 aspx

サイトを最適化する前に、簡単にメモしてください。送信前にすべてのファイルがgzip圧縮されていることを確認して、サーバーを最適化してください。

そうでない場合、ページをいじくり始める前に、これはあなたに素晴らしい後押しを与えます。

http://www.codinghorror.com/blog/archives/000059.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top