Stratégies pour la réduction de l'état d'affichage de la taille en asp.net
J'utilise " n " le nombre de contrôles serveur dans ma page. Maintenant, je suis dans le réglage des performances et j'ai remarqué que mon ViewState
est trop grand et qu'il a fait de ma page lent.
Je sais ViewState
la taille peut être compressé par Gzip. D'autres suggestions pour réduire ViewState
dans asp.net. Je ne veux pas faire dans IIS parce que mon application web est hébergé sur un serveur partagé.
Pourquoi pensez-vous ViewState est la cause de la lenteur de la page? Avez-vous utilisé un outil comme HttpFox pour inspecter les choses d'un peu plus près?
OriginalL'auteur Chendur Pandian | 2009-12-22
Vous devez vous connecter pour publier un commentaire.
En supposant que la taille de l'état d'affichage est la principale cause de la "lenteur", je voudrais suggestion de vous attaquer à partir d'une approche plus holistique.
Vous avez 'n' le nombre de contrôles serveur, vous avez besoin de tous les " n " numéros de contrôles serveur et pas seulement l'HTML simple?
Dire que vous avez vraiment besoin de tous les " n " de leur, de faire tous les d'entre eux ont besoin d'avoir l'état d'affichage activé?
Voici un bon article (si vous ne l'avez pas déjà lu), qui fournit plus insights:
VIEWSTATE minimisation de la taille
OriginalL'auteur o.k.w
EnableViewState = false;
devrait devenir votre ami.En supposant que vous êtes actuellement à l'aide de viewstate SEULEMENT lorsque vous en avez besoin vous pouvez effectuer les opérations suivantes:
Labels
àLiterals
, surtout si vous les utilisez dans des modèles. Les étiquettes de prendre beaucoup plus de viewstate.OriginalL'auteur Kelsey
Viewstates ne doit être utilisé lorsque vous devez vous rappeler l'état de la page entre les publications. Il est utilisé pour empêcher les autres d'accéder à la base de données. Donc, si ce n'est pas nécessaire dans votre contrôle, l'utilisation
EnableViewState = False
. Si rien n'sur votre page va avoir besoin d'un état d'affichage, vous pouvez désactiver viewstates pour que la page en ajoutantEnableViewState = False
dans lePage
tag.Si votre serveur peut se le permettre, vous pouvez transférer des données dans
Sessions
. Ce faire, si nécessaire, pour la sécurité (viewstate ne doit pas contenir des données sensibles), ou si le viewstate est la tenue d'une grande quantité de données. Attention, par défaut,Sessions
sont stockés dans la mémoire du serveur. Par conséquent, vous ne voulez pas utiliser cette trop grande de données si vous attendez beaucoup d'utilisateurs simultanés. Vous pouvez, cependant, modifier l'endroit où la Session est stocké (c'est à dire un autre serveur).OriginalL'auteur keyboardP
Ajoutez le code suivant à la page qui génère un grand état d'affichage des valeurs.
Sinon, ce peut être ajouté à la page maître pour éliminer le besoin d'ajouter sur chaque page. Le code ci-dessous permet à l'état d'affichage à être stockées dans la session.
OriginalL'auteur ihimv
La première chose que vous devez faire est de désactiver le viewstate où vous n'en avez pas besoin. Examiner les contrôles et de déterminer ceux qui ont absolument besoin de viewstate allumé.
OriginalL'auteur Gabriel McAdams
Exactement le problème que j'ai eu. J'ai dû prolonger la HiddenFieldPageStatePersister et enregistrer l'état d'affichage dans une base de données. J'ai écrit tout un article qui va vous guider.
http://ashishnangla.com/2011/07/21/reducing-size-of-viewstate-in-asp-net-webforms-by-writing-a-custom-viewstate-provider-pagestatepersister-part-12/
OriginalL'auteur Ashish Nangla