views:

236

answers:

9

How to decrease the page load time in ASP.NET application? What should be the precautions and specially when we are interacting with databases

e.g.

  1. wise use of viewstate
  2. Set in web.config when deploying the app

    etc

+2  A: 
  • Try to minimize ViewState as much as possible or keep it on the server
  • Use caching of data or portions on your page by using outputcaching of user controls
  • Bundle scripts and css as much as possible

Always measure after you refactored something to see if it makes a difference.

Also please take a look here for more information.

Grz, Kris.

XIII
A: 

There is an interesting article on MSDN with 10 tips to optimize ASP.Net apps. Its at

http://msdn.microsoft.com/en-us/magazine/cc163854.aspx

Gavin Draper
A: 
  • Cache as much db reads as possible
  • reduce/disable viewstate
  • do less (if possible)
Fredrik Leijon
+1  A: 

You could always trigger an async database action and have the page updated asynchronously - AJAX update panel comes to mind.

There is also Page Output Caching, useful if the page is largely static. It can also be done based on parameters, so you could potentially cache the page created for a given database search.

You can also take the over-the-top approach and reduce the "wordiness" of a page. I did this once for fun on a products page by shrinking the names of elements etc, managed to cut over 50% of page size, but it makes the markup entirely unreadable lol

Along this same route, apply reduction tools to css/javascript files - merge them too if you compress as compression becomes more efficient over fewer larger files.

Adam
+6  A: 

Some of the key "take-aways" from TechEd 2010 North America:

  • Caching is key to performance, consider your caching strategy very carefully.
  • Disable viewstate if possible.
  • Set <compilation debug=”false"> in web.config when deploying the app.
  • Consider CDN's or subdomains for graphics and other static content.
  • Place javascript at the bottom of the page, CSS at the top.
  • Consider CSS sprites for icons and other "small" graphics.

You can watch the sessions online here, they're both highly recommended:

Jakob Gade
A: 

The most important thing before doing any work on optimizing, is indicating what needs to be optimized. Thousends of tips to optimize can be posted here, so it's better to find what your performance problem is, and ask a more specific question for help to optimize what you need. You can optimize 3 parts of a web application:

Serverside performance: Indicate the largest bottleneck (a profiler is an easy option to do that). Optimize the bottleneck. Optimizing smaller problems, or optimizing without measuring the amount of time can be a waste of time when the large one is still there.

Client side performance: Take the advise from tools like yslow, or google page speed.

Bandwidth: Send the smallest amount of data to the user as possible in the least amount of requests as possible.

Paco
+1  A: 

80% of the end-user response time is spent on the front-end. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scripts, Flash, etc.

http://developer.yahoo.com/performance/rules.html

I'm not suggesting ignore the view state and database caching suggestions in the answers already provided. I'm pointing that for what I've found to be simplier alterations is to go for turning on GZip Compression in IIS, setting expiry headers on static elements to reduce server requests, optimize images using a tool such as smush.it

Run a report of your site using Zoompf for a very detailed report with estimate impact and easy of implementation ratings.

Duncan
A: 
  • Use MS Visual Studio 2010 which helps you in optimizing your .NET code for better performance.
  • CSS sprites are very useful when you have a lot of images in background.
  • Compress the contents of JavaScript files using gZip compresser and CSS file by removing white spaces and comments.
  • Avoid HTML comments as they are visible to client side by "View Source" option in browser, which will also reduce the file size.
  • Put most of the unnecessary JavaScript at the bottom of the page. For better performance dynamically load the JavaScript references after loading contents on your page.
Mayur
+1  A: 
  1. Never ever Deploy asp.net application under debug configuration on production. Find out here what scottgu has to say about this.

  2. Use Cookie-less domains to serve static resources like images, scripts, styles etc. Each client request is sent along with whole bunch of cookies, you don't need cookies while serving pictures or scripts. So host those resources on a cookie-less domain.

  3. Minify scripts, stylesheets and HTML response from the server. Removing unnecessary line-breaks and white-spaces can improve the time-to-load and bandwidth optimization.

You'll find many tips from here.

this. __curious_geek