2008-10-14 7 views
3

Je cherche à améliorer les performances de mon site, non pas parce qu'il fonctionne mal, mais simplement comme un exercice général. La suggestion habituelle pour les sites asp.net est de supprimer viewstate dans la mesure du possible. Je crois que cela peut être fait par chaque contrôle sur une page séparément ou pour toute la page. Ma question est de savoir si je désactive la page viewstate cela va arrêter l'affichage des contrôles sur une page maître (comme je le comprends, la page maître est en fait un contrôle sur la page).ASP.NET Masterpages et viewstate

+0

"L'optimisation prématurée est la racine de tous les maux" – stephenbayer

+0

Donc, "l'optimisation prématurée est la racine du mal" alors? :-p –

Répondre

1

Oui, la page est à l'origine du flux de page. Ainsi, la désactivation de viewstate pour la page entraîne le rendu viewstate hors du processus OnInit. Une meilleure question serait pourquoi la désactivation de viewstate pour la page maître fait la même chose?

1

Juste une note rapide sur le côté avant d'optimiser le site, avez-vous optimisé le serveur en vous assurant que tous les fichiers sont gzippés avant d'être envoyés.

Si ce n'est pas le cas, vous obtiendrez un bon coup de pouce avant même de bricoler avec la page.

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

3

Il y a un moyen facile de réduire tous vos viewstate.

Étape 1. Créez une nouvelle classe qui ressemble à ceci:

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 

Étape 2. Ajouter un dossier App_Browsers à votre projet. Étape 3. Dans votre nouveau dossier App_Browsers, ajoutez un nouveau fichier default.browser qui ressemble à ceci. Lorsque vous exécutez vos pages maintenant, vous devriez trouver que la taille de viewstate a chuté à quelques octets. La classe SessionPageStateAdapter intercepte viewstate avant d'être diffusée dans le navigateur et la garde sur le serveur dans l'état de session. Le bit de viewstate qui est toujours envoyé au client est juste un identifiant qui est utilisé pour reconstituer le viewState d'origine lorsque la page est renvoyée au serveur.

Questions connexes