Hat jemand Ideen oder Referenzen, auf die er mich hinsichtlich der Optimierung des Viewstates meiner ASP .NET-Anwendung hinweisen könnte? Ich möchte es nicht alle zusammen ausschalten, und das Hauptziel der Optimierung ist es, die Leistung zu beschleunigen, so dass ich keine teure Funktion ausführen möchte, um den Ansichtszustand für bestimmte Steuerelemente rekursiv zu deaktivieren, da diese Funktion die Geschwindigkeit verlangsamen würde Ladezeit der Seite, die den Zweck besiegen würde.
Irgendwelche Ideen?
Es gibt nicht viel, was ich dir sagen kann, außer "setze nicht viel in deine ViewState
".
Orte, an denen ich nach Optimierungen suchen würde:
GridViews
, <x>Lists
und Repeaters
. GridViews
sind besonders schlecht bei ViewState
; Alles, was Sie in die Databind einbinden, ist der Fall. Wenn Sie also eine besonders große Liste binden, die ASP.NET erwartet, um die Paginierung für Sie zu verwalten, werden Sie eine riesige ViewState
haben. Die einzige Möglichkeit, dies zu umgehen, besteht darin, nur jeweils eine Seite an die GridView
zu binden. Dies bedeutet jedoch, dass Sie eine datenseitige Paginierung durchführen müssen, die genauso schmerzhaft sein kann, oder ViewState
für deaktivieren Die GridView
, was (wohl) nützliche Funktionen wie Inline-Bearbeitung bedeutet, sind nicht mehr verfügbar.
Hier gibt es keine Silberkugel.
Hier sind einige Ideen, wie Sie die Größe von ViewState optimieren können, die über die Leitung übertragen wird ( aus dieser Antwort kopiert ):
ViewState ist eine clientseitige Statusverwaltung und wird Teil Ihrer Request- und Response-Pakete. Ein starker Viewstate kann Ihre Anwendungsleistung tatsächlich verlangsamen. Eine schnelle Möglichkeit, die ViewState-Leistung zu optimieren, besteht darin, sie auf der Serverseite zu halten und nur dann zu verwenden, wenn sie benötigt wird. Dies ist sinnvoll, da ViewState nie wirklich auf dem Client-Browser-Ende verwendet wird und beim Zurückschreiben immer auf der Serverseite benötigt wird. Sie können ein verteiltes Caching-System wie AppFabric oder NCache verwenden, um ViewState auf der Serverseite zu speichern. Dies sollte die Leistung verbessern.
Ich habe persönlich mit NCache gearbeitet, das keinen Provider für den Code-Code-Wechsel zum ViewState-Caching hat.
Klicken Sie hier, um den Artikel für ASP.NET View State Caching anzuzeigen
Tags und Links optimization asp.net viewstate