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.
- wise use of viewstate
Set in web.config when deploying the app
e开发者_运维知识库tc
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:
- My Web Site Is So Slow...and I Don’t Know What to Do about It! with Thomas Deml
- Web Load Testing with Microsoft Visual Studio 2010 with Richard Campbell
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.
Never ever Deploy asp.net application under debug configuration on production. Find out here what scottgu has to say about this.
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.
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.
- 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.
- Improving ASP.NET performance from Microsoft Patterns & Practices.
Grz, Kris.
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.
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.
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
- Cache as much db reads as possible
- reduce/disable viewstate
- do less (if possible)
- 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.
Always use request to load concept in application. Try to avoid unwanted database hit on the page load.if you have large amount of data on page load then you can go with Ajax request call.
This below information used to decrease the page load time
- Remove unwanted line space while hosting site.
- Merge all inline css file into one common .css file.
- Merger all inline Java scripts into one common .js file and add reference to this file whenever you require.
- use compress Javascript and CSS files.
- Try using less images with less size in your web page.
精彩评论