Follow me on twitter @yodasmydad
Ahhhh #Fringe can't finish like that!! Latest Tweet:

Hey I'm Lee. My blog was put up to house my strange thoughts, ramblings, nuggets of information I can refer back to and document my learning curves on new dev stuff like Umbraco v5 and other .NET related things.

All thoughts and comments on here are my own, and in no way reflect my employer - I also take no responsibility for spelling, grammar or terminology, so read at your own risk!

Blogs I Read

Sites I Like

Speed Up Your ASP.NET Pages

Ok it's not necessarily true in all cases but....

I am currently putting the finishing touches to a business directory I have built using ASP.NET 2.0.  I have used a lot of the .NET 2.0 web controls for the project, and at the beginning all was well.  But as the application grew and I needed to use more SQLDataSources, Repeaters and DropDownList boxes, I noticed that the pages seemed to lag for maybe a couple of seconds before loading. 

I (Foolishly) decided to use an Access Database when starting this app, so instantly thought it must be my good old AccessDB playing up.  So I went through the app and upgraded it so that everything ran off a nice SQL DB. - Still there was some lag on start up which was getting on my nerves... [more]

After a bit of investigation and reading through my copy of Stephen Walthers - ASP.NET 2.0 Unleashed (Which I have found to be a fantastic book) I started reading more about ViewState.  Upon this newly found information I opened up my default page (Which was the main culprit for hanging) and found this:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPD
wULLTIwNjc1ODc4NjEPZBYCAgYPZBYKAgEPFgIeC18hSXRlbUNvdW50Ag
EWAgIBD2QWAmYPFQgBMxI1Mi4xMjMxODE2MzE5ODMyODYULTAuNDMyMTUwMzEwOTc0NTE
xNTYBMwEzATMBMwEzZAIDDxYCHwACARYCZg9kFgJmDxUGATMBMwxVU0F1dG9tb3RpdmUd
aHR0cDovL3d3dy51c2F1dG9tb3RpdmUuY28udWsdaHR0cDovL3d3dy51c2F1dG9tb3Rpd
mUuY28udWsITUs0MSAwTEZkAgcPPCsACQEADxYEHghEYXRhS2V5cxYAHwACCmQWFGYPZB
YCZg8VAwExGEFjY29tbW9kYXRpb24gJiBQcm9wZXJ0ebECPGEgaHJlZj0ic2hvdy5hc3B
4P2NhdD0xIiBjbGFzcz0ic3ViLWNhdHMiPkVzdGF0ZSBBZ2VudHM8L2E+LCA8YSBocmVm
PSJzaG93LmFzcHg/Y2F0PTE5IiBjbGFzcz0ic3ViLWNhdHMiPkhvdGVsczwvYT4sIDxhI
GhyZWY9InNob3cuYXNweD9jYXQ9MjAiIGNsYXNzPSJzdWItY2F0cyI+SG9saWRheSBIb2
1lczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MjEiIGNsYXNzPSJzdWItY2F0cyI
+Q2FtcCBTaXRlczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MjIiIGNsYXNzPSJz
dWItY2F0cyI+TGV0dGluZyBBZ2VudHM8L2E+LCBkAgEPZBYCZg8VAwEyEUJ1aWxkaW5nI
FNlcnZpY2Vz8wM8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTIiIGNsYXNzPSJzdWItY2F0cy
I+UGx1bWJlcnM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTIzIiBjbGFzcz0ic3V
iLWNhdHMiPkVsZWN0cmljaWFuczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MjQi
IGNsYXNzPSJzdWItY2F0cyI+UHJvcGVydHkgTWFpbnRlbmFuY2U8L2E+LCA8YSBocmVmP
SJzaG93LmFzcHg/Y2F0PTI1IiBjbGFzcz0ic3ViLWNhdHMiPkdhcyBFbmdpbmVlcnM8L2
E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTI2IiBjbGFzcz0ic3ViLWNhdHMiPlJvb2Z
pbmcgU2VydmljZXM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTI3IiBjbGFzcz0i
c3ViLWNhdHMiPkRlY29yYXRvcnM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTI4I
iBjbGFzcz0ic3ViLWNhdHMiPkFyY2hpdGVjdHVyYWw8L2E+LCA8YSBocmVmPSJzaG93Lm
FzcHg/Y2F0PTI5IiBjbGFzcz0ic3ViLWNhdHMiPkdsYXppZXJzPC9hPiwgZAICD2QWAmY
PFQMBMxtJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChJVCmDAjxhIGhyZWY9InNob3cuYXNw
eD9jYXQ9MyIgY2xhc3M9InN1Yi1jYXRzIj5Db21wdXRlciBSZXBhaXJzPC9hPiwgPGEga
HJlZj0ic2hvdy5hc3B4P2NhdD0zMCIgY2xhc3M9InN1Yi1jYXRzIj5JVCBUcmFpbmluZz
wvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MzEiIGNsYXNzPSJzdWItY2F0cyI+Q29
tcHV0ZXIgU2FsZXM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTMyIiBjbGFzcz0i
c3ViLWNhdHMiPk5ldHdvcmtpbmcgU2VydmljZXM8L2E+LCBkAgMPZBYCZg8VAwE0CkVtc
GxveW1lbnQ5PGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00IiBjbGFzcz0ic3ViLWNhdHMiPk
FnZW5jaWVzPC9hPiwgZAIED2QWAmYPFQMBNRxJbnRlcm5ldCwgRGVzaWduICYgTWFya2V
0aW5n/AI8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTUiIGNsYXNzPSJzdWItY2F0cyI+V2Vi
IERlc2lnbiAmIERldmVsb3BtZW50PC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0zM
yIgY2xhc3M9InN1Yi1jYXRzIj5TRU88L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PT
M0IiBjbGFzcz0ic3ViLWNhdHMiPkdyYXBoaWMgRGVzaWduPC9hPiwgPGEgaHJlZj0ic2h
vdy5hc3B4P2NhdD0zNSIgY2xhc3M9InN1Yi1jYXRzIj5BZHZlcnRpc2luZyBBZ2VuY2ll
czwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9MzYiIGNsYXNzPSJzdWItY2F0cyI+U
2lnbiBXcml0ZXJzPC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0zNyIgY2xhc3M9In
N1Yi1jYXRzIj5QcmludGVyczwvYT4sIGQCBQ9kFgJmDxUDATYQVHJhdmVsICYgVG91cml
zbcYBPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD05IiBjbGFzcz0ic3ViLWNhdHMiPlRyYXZl
bCBBZ2VudHM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTM4IiBjbGFzcz0ic3ViL
WNhdHMiPkhvbGlkYXkgU3BlY2lhbGlzdHM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2
F0PTM5IiBjbGFzcz0ic3ViLWNhdHMiPkxvY2FsIEF0dHJhY3Rpb25zPC9hPiwgZAIGD2Q
WAmYPFQMBNwhNb3RvcmluZ/cBPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0xMCIgY2xhc3M9
InN1Yi1jYXRzIj5EZWFsZXJzPC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00MCIgY
2xhc3M9InN1Yi1jYXRzIj5DYXIgJiBWYW4gSGlyZTwvYT4sIDxhIGhyZWY9InNob3cuYX
NweD9jYXQ9NDEiIGNsYXNzPSJzdWItY2F0cyI+R2FyYWdlczwvYT4sIDxhIGhyZWY9InN
ob3cuYXNweD9jYXQ9NDIiIGNsYXNzPSJzdWItY2F0cyI+UGFydHMgJiBBY2Nlc3Nvcmll
czwvYT4sIGQCBw9kFgJmDxUDATgSU2hvcHBpbmcgJiBMZWlzdXJl5AM8YSBocmVmPSJza
G93LmFzcHg/Y2F0PTExIiBjbGFzcz0ic3ViLWNhdHMiPlB1YnM8L2E+LCA8YSBocmVmPS
JzaG93LmFzcHg/Y2F0PTQzIiBjbGFzcz0ic3ViLWNhdHMiPlJlc3RhdXJhbnRzPC9hPiw
gPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00NCIgY2xhc3M9InN1Yi1jYXRzIj5DbG90aGVz
IFNob3BzPC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD00NSIgY2xhc3M9InN1Yi1jY
XRzIj5FbGVjdHJvbmljczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9NDYiIGNsYX
NzPSJzdWItY2F0cyI+QWN0aXZpdHkgQ2VudHJlczwvYT4sIDxhIGhyZWY9InNob3cuYXN
weD9jYXQ9NDciIGNsYXNzPSJzdWItY2F0cyI+R3ltczwvYT4sIDxhIGhyZWY9InNob3cu
YXNweD9jYXQ9NDgiIGNsYXNzPSJzdWItY2F0cyI+QWR1bHQgU2hvcHBpbmc8L2E+LCA8Y
SBocmVmPSJzaG93LmFzcHg/Y2F0PTU2IiBjbGFzcz0ic3ViLWNhdHMiPlBob3RvZ3JhcG
h5PC9hPiwgZAIID2QWAmYPFQMCMTAPRmluYW5jZSAmIExlZ2FsiAI8YSBocmVmPSJzaG9
3LmFzcHg/Y2F0PTEyIiBjbGFzcz0ic3ViLWNhdHMiPkFjY291bnRhbnRzPC9hPiwgPGEg
aHJlZj0ic2hvdy5hc3B4P2NhdD00OSIgY2xhc3M9InN1Yi1jYXRzIj5Tb2xpY2l0b3JzI
CYgTGF5d2VyczwvYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9NTAiIGNsYXNzPSJzdW
ItY2F0cyI+RGVidCBNYW5hZ2VtZW50PC9hPiwgPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0
1MSIgY2xhc3M9InN1Yi1jYXRzIj5GaW5hbmNpYWwgQWR2aXNvcnM8L2E+LCBkAgkPZBYC
Zg8VAwIxMRFCdXNpbmVzcyBTZXJ2aWNlc7sCPGEgaHJlZj0ic2hvdy5hc3B4P2NhdD0xM
yIgY2xhc3M9InN1Yi1jYXRzIj5PZmZpY2UgU3VwcGxpZXM8L2E+LCA8YSBocmVmPSJzaG
93LmFzcHg/Y2F0PTUyIiBjbGFzcz0ic3ViLWNhdHMiPlRlbGVwaG9uZSBTZXJ2aWNlczw
vYT4sIDxhIGhyZWY9InNob3cuYXNweD9jYXQ9NTMiIGNsYXNzPSJzdWItY2F0cyI+U2Vj
dXJpdHk8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTU0IiBjbGFzcz0ic3ViLWNhd
HMiPkNvcnBvcmF0ZSBFdmVudHM8L2E+LCA8YSBocmVmPSJzaG93LmFzcHg/Y2F0PTU1Ii
BjbGFzcz0ic3ViLWNhdHMiPkNsZWFuZXJzPC9hPiwgZAIJDw9kDxAWAWYWARYCHg5QYXJ
hbWV0ZXJWYWx1ZWQWAQIDZGQCCw8WAh8AAgEWAmYPZBYCZg8VBgxVU0F1dG9tb3RpdmUM
MDEyMzQgMjczMTU1HWh0dHA6Ly93d3cudXNhdXRvbW90aXZlLmNvLnVrHWh0dHA6Ly93d
3cudXNhdXRvbW90aXZlLmNvLnVrCE1LNDEgMExGaVRoZSBVLksuJ3MgbGFyZ2VzdCBXYX
JlaG91c2UgRGlzdHJpYnV0b3Igb2YgcmVwbGFjZW1lbnQgb2YgQW1lcmljYW4gYXV0byB
wYXJ0cyBmb3IgY2FycyBhbmQgbGlnaHQgdHJ1Y2tzLmRkf+5jwBxeGZ/y1IsWJzddd9l8
dgs=" />
 

Now the thing is this page has absolutely no need to use ViewState, so I was a touch confused why I had the above...  Anyhow... In the unleashed book it explains how to disable ViewState via the page directive using the EnableViewState="false"

<%@ Page Language="VB" EnableViewState="false" %>

NOTE: If you want to turn off viewstate for you entire website and not just one page you can also do it in your web.config file

<system.web>
   <pages enableViewState="false"  />
</system.web>

I then relaunced the page and the slight lag I had disapeared!! Thus a valuable lesson learnt in the ASP.NET world. If your hot on your app's speed then check if you actually need viewstate enabled on a particular page - If not turn it off.. Its easy enough to turn back on!

Back to top