2008-09-22 8 views
16

Je désactive généralement viewstate pour mes contrôles ASP.net à moins que je sache explicitement que je vais avoir besoin d'un état d'affichage pour eux. J'ai trouvé que cela peut réduire considérablement la taille de la page du HTML généré.Quand activer/désactiver Viewstate

Est-ce une bonne pratique? Quand devrait être activé ou désactivé?

Répondre

19

Oui, c'est une très bonne idée. On pourrait argumenter qu'il aurait dû être désactivé par défaut par Microsoft, tout comme la mise en cache.

Pour voir à quel point Viewstate est en termes de taille accrue, vous pouvez utiliser un outil appelé Viewstate Analyzer. Ceci est particulièrement utile lorsque vous avez une application existante développée avec Viewstate activé.

Une autre bonne raison de désactiver Viewstate est qu'il est vraiment difficile de le désactiver à un stade ultérieur, lorsque vous avez des charges de composants qui en dépendent.

5

Je pense que c'est une bonne pratique. De nombreux développeurs ASP.NET ne savent pas que leurs états d'affichage ajoutent un énorme bagage au code HTML envoyé aux navigateurs de leurs utilisateurs.

4

C'est une bonne pratique. Sauf si vous utilisez des valeurs ViewState sur des publications, ou si elles sont requises par un contrôle complexe, c'est une bonne idée d'enregistrer sur ViewState dans le cadre de ce qui sera envoyé au client. _Viewstate peut augmenter inutilement le nombre d'octets qui doivent être transférés.

0

Donc, à moins que les données ne soient utilisées la prochaine fois, c'est une bonne idée de l'éteindre.

4

Vous pouvez trouver les informations contenues dans le "ASP.NET State Management Recommendations" article sur MSDN utiles pour prendre votre décision.

Généralement dans ASP.NET 2.0 et au-dessus de désactiver le ViewState est moins destructrice en raison de l'introduction de l'Etat de contrôle pour le stockage informaton nécessaire pour la collecte des événements, etc.

2

une bonne idée Definately, rien de pire qu'une page qui un développeur lie un dataGrid dans le Page_Load à chaque fois mais aussi en envoyant le viewstate!

C'est également une très bonne idée si vous prévoyez d'utiliser le UpdatePanel à partir des extensions AJAX, cela signifie que vous soumettez moins lors de la requête UpdatePanel. (Ne flambe pas pour dire qu'un UpdatePanel peut être bon: P)