<input type="hidden" name="__VIEWSTATE"... value est bcp trop long

Signaler
Messages postés
136
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 avril 2009
-
Messages postés
136
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 avril 2009
-
Bonjour,

Question de postback, les pages asp.net une fois générées produisent un code HTML avec des balises masquées, comme celle-ci :
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJN...."/>

Mon souci est que le value de cet input est monstrueusement long, 97000 caractères dans mon cas soit quasiment 100K0 de plus pour la taille générale de ma page.

Ma question est la suivante, est-il possible de minimiser la taille de ce value. Doit on regénérer la solution ou quelque chose de cet ordre là pour espérer diminuer cette taille ?

Merci pour vos réponses

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Il faut utiliser 


myControl.EnableViewState = False




ou
tu mets False à la propriété EnableViewState de ta page.

( dans ce cas il peut
avoir de la perte de données ou des controles qui marche moins bien






Bon coding
Messages postés
136
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 avril 2009

Oui mais en effet ça ne me convient pas, j'ai déjà essayé et je perds la mémoire de certaines données avec des postback partiel obligatoires dans mes pages.

Merci quand même
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Utilises
myControl.EnableViewState = False

sur des controles comme les labels (si il ne sont pas modifiés entre les postback)
Messages postés
136
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 avril 2009

Certes mais certaines de mes pages possèdent peu de contrôles serveurs et pourtant le value de cet input reste énorme. Alors même méthodiquement, je n'arriverai pas à grand chose, en plus au risque de perdre certaines données.


En fait je ne comprends pas la taille de ce value, même s'il s'agit d'une restitution après postback. Je travaille avec VS2005 et je me demande si le value généré ne peut pas être optimisé par une action automatisée ou robotisée à la source.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonsoir,

Le viewstate quelle grande aventure ! Afin de bien comprendre ce que c'est je te conseille (vraiment !) de prendre le temps de lire cet excellent article : http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx

Une fois le fonctionnement du viewstate en tête reste à voir comment l'optimiser. Tout d'abord regardons ce qu'il contient : ViewstateDecoder est l'outil qu'il nous faut http://www.dotnetspider.com/resources/8027-ViewState-Decoder.aspx à partir de la tu pourras comprendre qui est le responsable et décider (ou non) de mettre enableviewstate à true ou false. Il faut savoir que les controles ne sont pas les seuls responsables, tu peux également ajouter directement des éléments dans le viewstate en utilisant la propriété Viewstate["toto"] = object;

Si après avoir analysé et approuvé chacun des items contenu dans le viewstate (et j'insiste sur l'analyse des éléments du viewstate) le viewstate est toujours trop gros, on peut toujours sauvegarder le viewstate coté serveur, je parle de tout ca ici : http://blogs.developpeur.org/cyril/archive/2008/01/02/optimisation-viewstate-enregistrer-server-Session-sessionpagestatepersister-PageStatePersister.aspx

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
136
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 avril 2009

Salut Jesus,

Affaire corsé en effet. Je viens de lire l'article de ton blog en biais. Je l'ai enregistré pour pouvoir le travailler dès que j'aurai un moment puisqu'a priori certaines choses ne sont pas à prendre à la légère.

Merci en tous cas