I use 'n' number of server controls in my page. Now I am into performance tuning and I've noticed that my ViewState
is too large and it makes my page slow.
I know ViewState
size can be compressed by Gzip. Any other suggestions for reducing ViewState
in asp.net. I don't want to do in IIS because my web application is hosted on a shared server.
Assuming the size of viewstate is the main cause of the 'slowness', I would like to suggestion you tackle it from a more holistic approach.
You have 'n' number of server controls, do you need all 'n' numbers to be server controls and not just plain HTML?
Say you really need all 'n' of them, do all of them need to have viewstate enabled?
Here is one good article (if you haven't already read) which provides more insights: VIEWSTATE size minimization
EnableViewState = false;
should become your friend.
Assuming you currently are using viewstate ONLY where you need you can do the following:
Labels
to Literals
, especially if you are using them in templates. Labels take much more viewstate.Viewstates should only be used when you need to remember the state of the page between postbacks. It's used to prevent extra access to the database. So, if this isn't required in your control, use EnableViewState = False
. If nothing on your page is going to need a viewstate, you can disable viewstates for that page by adding EnableViewState = False
within the Page
tag.
If your server can afford it, you may want to transfer data into Sessions
. Do this if necessary for security (viewstate should not contain sensitive data), or if your viewstate is holding a large amount of data. Be careful as, by default, Sessions
are stored in memory of the server. Therefore, you don't want to use this too much with large data if you're expecting many concurrent users. You can, however, change where the Session is stored (i.e. another server).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With