Web Front End Performance
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Web Front End Performance

on

  • 1,689 views

This is an older session,

This is an older session,

Statistics

Views

Total Views
1,689
Views on SlideShare
1,687
Embed Views
2

Actions

Likes
2
Downloads
18
Comments
0

1 Embed 2

http://www.techgig.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Entity Tags (ETags) are commonly used in Web applications to effectively leverage the power of using web farms, which is a non-fancy term for HTTP/S load balancing.  In web farms, a common practice is to set what is called ETags as it helps enhance performance in web farm scenarios.  ETags is controlled in IIS by a metabase property (ETAG_CHANGENUMBER) and this value is sent back to clients via response headers as instructed by the HTTP RFC 2616. 

Web Front End Performance Presentation Transcript

  • 1. ASP.NET Performance Tips
    GettingThings Right on the Client
    Chris Love
    http://ProfessionalASPNET.com
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 2. ASP.NET Performance Tips on the Server I
    ASP.NET Performance Tips on the Server II
    ASP.NET Performance Tips on the Client-Side
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 3. High Performance Web Sites
    Essential Knowledge for
    Front-End Engineers
    Steve Souders
    http://amzn.to/gwf9pG
    http://amzn.to/gudayQ
    http://developer.yahoo.com/performance/rules.html
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 4. Front-End Performance Tools
    • FireBug and YSlow
    • 5. http://GetFireBug.com
    • 6. http://developer.yahoo.com/yslow/
    • 7. Fiddler
    • 8. http://FiddlerTools.com
    • 9. Web Development Helper
    • 10. http://projects.nikhilk.net/Projects/WebDevHelper.aspx
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 11. Front-End Performance Rules
    Make Fewer HTTP Requests
    Use a Content Delivery Network
    Add an Expires Header *
    Compress Content *
    StyleeSheets On Top *
    Scripts at Bottom *
    Avoid CSS Expressions
    Make JavaScript and CSS External *
    Reduce DNS Lookups
    Minify JavaScript *
    Avoid Redirects *
    Remove Duplicate Scripts *
    Configure Etags
    Make AJAX Cacheable *
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 12. Make Fewer HTTP Requests
    • Each Request Adds More Overhead
    • 13. Avoid Slicing Images that are not Reused
    • 14. Image Maps
    • 15. CSS Sprites
    • 16. Inline Images
    • 17. Combine Scripts and CSS
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 18.
    • Use a Content Delivery Network
    • 19. More Geographically Dispersed
    • 20. Not really practical for most sites.
    • 21. Can see drastic response time savings
    • 22. Do not compare tests against in house lab results
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 23.
    • Configure Etags
    Mechanism for Servers and Browsers to
    Communicate about Cache Validation.
    Provide a way to know if Browser Cache matches
    what is on the server.
    RFC 2616
    Sends a 304 Response instead of 200
    IIS 6.0 & Service Pack 1 (slipstream)
    IIS 7 can be integrated with IIS 6 Farms
    Set ETAG_CHANGENUMBER to 0
    Best Idea - Just Remove them!
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 24. Avoid CSS Expressions
    • Specific to IE 5+
    • 25. Constantly being Reevaluated
    • 26. Use JavaScript Functions to change the Style
    • 27. Use One-Time Expressions
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 28. Reduce DNS Lookups
    • DNS Caching – How does DNS work?
    • 29. Find the Fine Point between Parallel Downloads and DNS lookups
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 30. Compress Content
    • Reduces Content being sent over the wire
    • 31. Gzip, Deflate
    • 32. Increases Processer Demand on both ends
    • 33. IIS 6 and IIS 7
    • 34. http://technet2.microsoft.com/windowsserver2008/en/library/60f3fa55-f005-496e-9d2f-cc4fc2732fce1033.mspx?mfr=true
    • 35. Blowry
    • 36. Various ISAPI Filters
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 37. Add an Expires Header
    • Primes the Cache
    • 38. For more than just images
    <%@ OutputCache Duration="60" VaryByParam="None" %>
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public)
    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %>
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 39. StyleeSheets On Top
    • Progressive Rendering
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 40. Make JavaScript and CSS External
    <link rel="stylesheet" href=“Main.css”>
    <script src=“Meta.js "></script>
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 41. Scripts at Bottom
    • Yes!!! This Really Works!
    • 42. Defers Loading Client-Side Logic till after HTML
    • 43. Loading JavaScript is a Blocking Call (Everything waits for it to finish)
    <asp:ScriptManager ID="ScriptManager1" runat="server" LoadScriptsBeforeUI="false">
    </asp:ScriptManager>
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 44. Minify JavaScript
    • Remove Unnecessary Characters from JS Files
    • 45. JSMin - http://www.crockford.com/javascript/jsmin.html
    • 46. DoJo Compressor - http://dojotoolkit.org/docs/shrinksafe
    • 47. JavascriptMinimizer - http://devtools.10try.com/
    • 48. CSS Minification does not provide as much gain.
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 49. Remove Duplicate Scripts
    • They Happen
    • 50. Use the ScriptManager to Register JS Scripts
    • 51. Inherit from a Base Page Class with a checking mechanism
    • 52. Create a httpModule to check final stream
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 53. Avoid Redirects
    • 30X HTTP Status Codes
    • 54. Only use when necessary
    • 55. Reduce Response.Redirect
    • 56. PostBackURL
    • 57. Server.Transfer
    • 58. URL Rewritting
    Copyright Extreme Web Works - http://ProfessionalASPNET.com
  • 59. Make AJAX Cacheable
    • Optimize AJAX Requests
    • 60. http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx?display=Print
    <system.web.extensions>
    <scripting>
    <scriptResourceHandlerenableCaching ="true" enableCompression ="true"/>
    </scripting>
    </system.web.extensions>
    Copyright Extreme Web Works - http://ProfessionalASPNET.com