At the most recent Communitech Web Developers P2P, the excellent Rob Drimmie led a roundtable discussion on optimizing web apps. A number of different resources came out of the discussion including these great reads:
- High Performance Web Sites: Essential Knowledge for Front-End Engineers by Steve Souders
- and the accompanying web site which was the start of the rules:
- Rule 1 - Make Fewer HTTP Requests
- Rule 2 - Use a Content Delivery Network
- Rule 3 - Add an Expires Header
- Rule 4 - Gzip Components
- Rule 5 - Put Stylesheets at the Top
- Rule 6 - Put Scripts at the Bottom
- Rule 7 - Avoid CSS Expressions
- Rule 9 - Reduce DNS Lookups
- Rule 11 - Avoid Redirects
- Rule 12 - Remove Duplicate Scripts
- Rule 13 - Configure ETags
- Rule 14 - Make AJAX Cacheable
Sites and Articles
- Yahoo’s Best Practices for Speeding Up Your Web Site takes Steve Souders’ rules and adds a few more great ones.
- HighScalability.com which is a site dedicated to the ins-and-outs of building large-scale websites.
- HTML5 Rocks explaining HTML 5 related performance issues.
- Auditing Your Web App For Speed Great starting point.
- Google’s Speed Tracer Chrome extension for visually profiling web application activity.
- Google’s Web Site Optimizer and Webmaster Tools which can help with speed and search performance.
- Yahoo! YSlow, a FireBug plugin to identify performance issues.
- cuzillion, a quick test tool for you to experiments with how elements of the page affect one another.
- http://spriteme.org/, a purely awesome bookmarklet to build all those CSS sprites you should be using (see Rule #1 above)
- http://www.browserscope.org/ a “community-driven project for profiling web browsers”.
Browser specific optimizations
- Rendering: repaint, reflow/relayout, restyle The ins and outs of how browsers re-draw and update the screen.
- Why we don’t has a Parent selector an insightful explanation of why a parent selector may not be a great idea.
- How to make your own Gecko reflow video I haven’t tried this but I want to.
I’ll keep adding to this post as I find more resources.