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
Répondre
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?
Vous pourriez trouver cet article utile:
http://msdn.microsoft.com/en-us/library/ms972976.aspx
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.
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.
"L'optimisation prématurée est la racine de tous les maux" – stephenbayer
Donc, "l'optimisation prématurée est la racine du mal" alors? :-p –