SlideShare a Scribd company logo
StirTrek Edition
10 Things You Can Do
Today To Speed Up Your
Web Application & Make
More $$$$ Today!
Chris Love
@ChrisLove
Love2Dev.com
Who Am I
• ASP.NET MVP
• ASP Insider
• Internet Explorer User Agent
• Author
• Speaker
• Tweaker, Lover of Web, JavaScript, CSS & HTML5
• @ChrisLove
• Love2Dev.com
High Performance Single Page Web
Applications
• Responsive Design
• Touch
• Mobile First
• SPA
• Extensible, Scalable Architecture
• Web Build and Workflow
• Goes Really Fast!
• ~395 Pages
• 20 Chapters
• $9.99 http://amzn.to/1a55L89
Slide Deck & Source Code
• Slide Deck – slidesha.re/15YTrTT
• Source Code – http://GitHub.com/docluv
10 things you can do to speed up your web app today   stir trek edition
Annoying?
10 things you can do to speed up your web app today   stir trek edition
Web Performance Optimization
Web performance optimization, WPO, or website optimization involves
ongoing monitoring and testing of websites to achieve optimum
performance under given constraints. Usually optimization is restricted
due to lack of complete information and metrics to evaluate the
performance of a website.
http://bit.ly/SWEh6E
Matt Cutts
"Also take a step back for a minute and consider the intent of this
change: a faster web is great for everyone, but especially for users.
Lots of websites have demonstrated that speeding up the user
experience results in more usage. So speeding up your website isn’t
just something that can affect your search rankings–it’s a fantastic idea
for your users.“
http://bit.ly/SPPB4k
SEO & Web Performance
• Faster Sites Rank Higher
• Faster is Better User Experience
• http://bit.ly/1Ezmko6
• Mobile First Web Applications Rank Higher
• Call Mobilegeddon
• http://bit.ly/1JFpsmE
Time is Money
• Faster Sites Have Higher Conversion Rates
• WalMart - http://bit.ly/S1fHSZ
• Google – http://bit.ly/WajJbB
• Amazon – http://bit.ly/S3UoAj
• ShopZilla - http://bit.ly/RIQMDM
WalMart
Folks at Walmart knew their pages were slow. As a for instance, initial
measurement showed that an item page took about 24 seconds to load
for the slowest 5% of users. Why? The usual culprits: too many page
elements, slow third-party scripts, multiple hosts (25% of page content
is served by partners, affiliates, and Marketplace), and various best
practice no-nos
http://bit.ly/WajJbB
Google’s ½ Second
Half a second delay caused a 20% drop in traffic. Half a second delay
killed user satisfaction.
The lesson, Marissa said, is that speed matters. People do not like to
wait. Do not make them.
http://bit.ly/TPPhUp
Fast Facts
• 57% Will Abandon a Slow Site After 3 Seconds
• We Have to Concentrate 50% Harder For Slow Sites
• 78% Have Felt Stress or Anger With Slow Sites
• 44% Say Slow Sites Make Them Anxious
• 4% Have Thrown Their Phone
http://bit.ly/SuBLDR
Web Sites Are Getting Fat and Out of Shape
http://httpArchive.org
99 Files Requests – 2+MB
18 JavaScript Files - 318KB
6.4 CSS Files – 61KB
53 Images – 1.3MB
38 TCP Connections
17 Domains
46% Cacheable
Web Sites Are Getting Larger
http://bit.ly/1zXjWqB
That's Great But I Work
in the Enterprise
Performance IS Relevant
• Do you really want to waste $$$
• You want to make co-workers hate you?
• And Possibly Throw a Phone at You
• Remember the Physiological Stats?
• Slow Web Apps Have Higher Data Entry Error Rates
• Due to Increase Cognitive Load
• Oh And You Are Going Mobile
• And You Already Have, Even If You and Your Boss Does Not Acknowledge It
http://bit.ly/16zFCXL
Good Code Is Cheaper
•Performance Best Practices Lead To:
•Well Structured Code
•Smaller Code
• Easier Maintenance
• Fewer Bugs
•Encourages Development Best Practices
•Encourages Discipline
OK How Do I Figure
Out How to Fix
Things?
Measure
•Load Time
•Page Speed Index
•Rendering
•Run-Time Performance
Set A Performance Budget
•Tim Kadlec
•http://bit.ly/1CUAfGx
•Typically Load Time
• Shoot for < 2 Seconds Over Broadband
• < 1 Second My Standard
• Page Weight
• What Doe My Web Site Cost? - http://whatdoesmysitecost.com/
• HTTP Chattiness
webpagetest.org
• Online Tool
• Identifies Common Performance Issues
• Must be Public URL
http://bit.ly/1dibffr
http://bit.ly/1dibffr
webpagetest.org – film strip view
YSlow Rules
1. Minimize HTTP Requests
2. Use a Content Delivery Network
3. Avoid empty src or href
4. Add an Expires or a Cache-Control Header
5. Gzip Components
6. Put StyleSheets at the Top
7. Put Scripts at the Bottom
8. Avoid CSS Expressions
9. Make JavaScript and CSS External
10. Reduce DNS Lookups
11. Minify JavaScript and CSS
12. Avoid Redirects
13. Remove Duplicate Scripts
14. Configure ETags
15. Make AJAX Cacheable
16. Use GET for AJAX Requests
17. Reduce the Number of DOM Elements
18. No 404s
19. Reduce Cookie Size
20. Use Cookie-Free Domains for
Components
21. Avoid Filters
22. Do Not Scale Images in HTML
23. Make favicon.ico Small and Cacheable
http://yhoo.it/W7BFIw
1. Add A Fav Icon – Eliminate 404s
“Most of your scaling
problems wont be
glamorous“
Mike Krieger
http://bit.ly/QeKZsO
Make FavIcon Small and Cacheable
• Don’t Return 404
• YSlow Rule #18
• Make Sure Its Compatible
• PNG/ICO
• It Carries Cookie Weight
• Instagram Lesson #1
http://bit.ly/RUXEiL
2.Use a CDN
• Globally Distributes Resources Closer to Client
• Was Expensive
• Amazon CloudFront & Azure cost pennies a month
3. Far Future Expires Header
• Lets the Browser Cache Resources Locally
• Eliminates Future Http Requests
• The Fastest Http Request is the one not made
• Only Updates Resource if Changed on Server
4. Use LocalStorage For Storage & Caching
• Allows You to Keep Data Locally in a Hash Table
• localStorage
• sessionStorage
• Approximately 5-10MB
• Replace Cookies
• Great For Caching
• Use IndexDB for Larger Data Sets
AJAX Caching
• Checks localStorage Before Making AJAX Call
• Stores Data in localStorage with Expiration Value
• Radically Reduces Http Requests
• Radically Improves Performance
• The Fastest AJAX Request is the One That is Never
Made.
5. No More Cookies
• Cookies Add Weight
• Place Resources (img/css/js) on
Cookieless Domains
• CDNs Are Great For No Cookies
• Consider Local Storage Instead
SWA & Cookies
36
Impact of Cookies on Response Time
Is 78ms A Big Deal???
• Remember 95 Files
• 95 * 78ms = 7410ms or 7+ Seconds
• 1248ms when considering 6 parallel connections
• Does Cause Delay
• Parallel Downloads Help Overall Time
• Don’t Use 95 Files, Duh
6. Optimize Images
• Images are Too Large
• PNGCrush, Kraken.io
• Image Sprites
• Glyph Fonts
• Data URIs
• CSS Rules
• CSS Sprites
• Consider Gyph/Icon Font
• CSS Gradients, Border Radius, Shadows
• Text
• This is a 30KB Image – Possible Change to 0KB*
7. Bundle & Minify CSS & JavaScript
• Eliminate Excess HTTP Requests
• Reduces Data Footprint
• This is a Release or Production Version
• Shoot for a Single JS and a Single CSS file in Production
7a. Inline Critical CSS & Remove Unused CSS
• Inlining Critical CSS Enables Instant Rendering Experience
• Remove Unused CSS
• UNCSS Module
• Identify Critical CSS
• Example: Most Bootstrap Sites Use <10% of Bootstrap
• Bootstrap Adds up to 600kb to Page Weight
Use A Client Build System
• Bundling & Minification is OK
• Grunt Is Very Easy & Extensive
• Validate Scripts
• Combine & Minify Scripts
• Validate CSS
• Combine & Minify CSS
• Critical CSS
• UNCSS
• Many Other Tasks
• Gulp, Broccoli are also good tools
• http://bit.ly/1kcrpuo
Grunt.js
8. Gzip Text Content
• Browsers Support Gzip & Deflate Algorithms
• Reduces Text Base Content Size
• Makes it Easier to Traverse Intertubes
• 14kb Critical Packet Size
• This is due to HTTP’s Slow Start
• This is the Goal for Optimal Mobile Performance
Configure Gzip in IIS
Configure Gzip in Amazon S3 | CloudFront
9. CSS @ Top – JavaScript @ Bottom
• CSS is Read & Evaluated to Build CSSOM
• Late CSS causes Browser to ‘Start All Over’
• JavaScript is a Blocking Action
• Browser Stops Everything
• Script Must Be Loaded
• Script Must Be Evaluated
• Use Async & Defer Attributes
10. External CSS & JavaScript
• Allows Resources to be Cached Independently of Markup
• Reduces Page Weight
• Reduces Chance of Duplicate Code
• Can Be Bundled & Minified
Critical Rendering Path
Bonus – Use AppCache
• <html lang="en-US" manifest="ie11WebSite.appcache">
• Stores Resources Locally in a Sandbox Cache for the Domain
• Available Offline
• Has an Event API
Bonus – Use AppCache
CACHE MANIFEST
# version 0.07
CACHE:
#images
favicon.ico
img/purple-bkg.jpg
#css
css/site.min.css
#js
js/applib.js
NETWORK:
#http://example.com/api/
#http://api.rottentomatoes.com/api/public/v1.0/
FALLBACK:
#http://content9.flixster.com/movie/*.jpg /img/offline-poster.png

More Related Content

PPTX
10 Things You Can Do to Speed Up Your Web App Today
PPTX
Single page applications the basics
PPTX
Web performance optimization for modern web applications
PPTX
Building Faster Websites
PDF
Web Components at Scale, HTML5DevConf 2014-10-21
PPTX
Html5 Fit: Get Rid of Love Handles
PDF
Optimizing web performance (Fronteers edition)
PPTX
10 things you can do to speed up your web app today 2016
10 Things You Can Do to Speed Up Your Web App Today
Single page applications the basics
Web performance optimization for modern web applications
Building Faster Websites
Web Components at Scale, HTML5DevConf 2014-10-21
Html5 Fit: Get Rid of Love Handles
Optimizing web performance (Fronteers edition)
10 things you can do to speed up your web app today 2016

What's hot (20)

PDF
Cache is keeping you from reaching the full potential as a developer (word ca...
PPTX
Advanced front end debugging with ms edge and ms tools
PPTX
Service workers your applications never felt so good
PPTX
Building fast aspnet websites
PDF
Core Web Vitals Optimization for any website, especially WordPress
PPTX
Develop a vanilla.js spa you and your customers will love
PPTX
Breaking the Speed Limit: Faster Websites Win
PPTX
Website performance optimization
PDF
Introduction core web vitals
PPTX
Time is the enemy
PPT
Windy cityrails performance_tuning
PPTX
Disrupting the application eco system with progressive web applications
PPTX
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
PPTX
A Day Building Fast, Responsive, Extensible Single Page Applications
PDF
Link prefetching presentation
PDF
Technical SEO vs. User Experience - Bastian Grimm, Peak Ace AG
PDF
Performance Test Analysis- Hotels
PPTX
WordPress Hosting Basics
PDF
Page Performance: A No-Holds Barred, Holistic Look
PDF
Introduction to web performance @ IEEE
Cache is keeping you from reaching the full potential as a developer (word ca...
Advanced front end debugging with ms edge and ms tools
Service workers your applications never felt so good
Building fast aspnet websites
Core Web Vitals Optimization for any website, especially WordPress
Develop a vanilla.js spa you and your customers will love
Breaking the Speed Limit: Faster Websites Win
Website performance optimization
Introduction core web vitals
Time is the enemy
Windy cityrails performance_tuning
Disrupting the application eco system with progressive web applications
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
A Day Building Fast, Responsive, Extensible Single Page Applications
Link prefetching presentation
Technical SEO vs. User Experience - Bastian Grimm, Peak Ace AG
Performance Test Analysis- Hotels
WordPress Hosting Basics
Page Performance: A No-Holds Barred, Holistic Look
Introduction to web performance @ IEEE
Ad

Similar to 10 things you can do to speed up your web app today stir trek edition (20)

PDF
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
PPTX
Performace optimization (increase website speed)
KEY
Faster Frontends
PPTX
Website Performance
PPTX
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
PDF
A little journey into website optimization
PPTX
Design Camp Boston - Designing Faster Websites
PDF
Web Performance Optimization (WPO)
PPTX
Performance Tuning Web Apps - The Need For Speed
PDF
7 Habits of Exceptional Performance
PDF
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
PDF
Super speed around the globe - SearchLeeds 2018
PDF
High performance website
PPTX
Web Page Speed - A Most Important Feature
PDF
Performance tuning of Websites
PPT
Frontend performance
PDF
Go Faster, Webmaster
PDF
Go Faster, Webmasters
PPTX
Why your slow loading website is costing you sales and how to fix it
PPTX
Why your slow loading website is costing you sales and how to fix it
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
Performace optimization (increase website speed)
Faster Frontends
Website Performance
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
A little journey into website optimization
Design Camp Boston - Designing Faster Websites
Web Performance Optimization (WPO)
Performance Tuning Web Apps - The Need For Speed
7 Habits of Exceptional Performance
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
Super speed around the globe - SearchLeeds 2018
High performance website
Web Page Speed - A Most Important Feature
Performance tuning of Websites
Frontend performance
Go Faster, Webmaster
Go Faster, Webmasters
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix it
Ad

More from Chris Love (20)

PPTX
Quick Fetch API Introduction
PPTX
Introduction to Progressive Web Applications
PPTX
Introduction to Progressive Web Applications
PPTX
Lazy load Website Assets
PPTX
Progressive Web Apps for Education
PPTX
The server is dead going serverless to create a highly scalable application y...
PPTX
Real World Lessons in Progressive Web Application & Service Worker Caching
PPTX
JavaScript front end performance optimizations
PPTX
Implementing a Responsive Image Strategy
PPTX
Using Responsive Web Design To Make Your Web Work Everywhere
PPT
Css best practices style guide and tips
PPTX
Using Responsive Web Design To Make Your Web Work Everywhere
PPTX
An Introduction to Microsoft Edge
PPTX
There Is No Mobile: An Introduction To Responsive Web Design
PPTX
Touch the web
PPTX
SPAs Are Easy
PPTX
A night at the spa
PPTX
Responsive web design
PPTX
Developing and deploying a website with html5
PPTX
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Quick Fetch API Introduction
Introduction to Progressive Web Applications
Introduction to Progressive Web Applications
Lazy load Website Assets
Progressive Web Apps for Education
The server is dead going serverless to create a highly scalable application y...
Real World Lessons in Progressive Web Application & Service Worker Caching
JavaScript front end performance optimizations
Implementing a Responsive Image Strategy
Using Responsive Web Design To Make Your Web Work Everywhere
Css best practices style guide and tips
Using Responsive Web Design To Make Your Web Work Everywhere
An Introduction to Microsoft Edge
There Is No Mobile: An Introduction To Responsive Web Design
Touch the web
SPAs Are Easy
A night at the spa
Responsive web design
Developing and deploying a website with html5
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Approach and Philosophy of On baking technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
A Presentation on Artificial Intelligence
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation_ Review paper, used for researhc scholars
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Approach and Philosophy of On baking technology
Digital-Transformation-Roadmap-for-Companies.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation
A Presentation on Artificial Intelligence
Per capita expenditure prediction using model stacking based on satellite ima...
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Advanced methodologies resolving dimensionality complications for autism neur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Empathic Computing: Creating Shared Understanding
Chapter 3 Spatial Domain Image Processing.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication

10 things you can do to speed up your web app today stir trek edition

  • 1. StirTrek Edition 10 Things You Can Do Today To Speed Up Your Web Application & Make More $$$$ Today! Chris Love @ChrisLove Love2Dev.com
  • 2. Who Am I • ASP.NET MVP • ASP Insider • Internet Explorer User Agent • Author • Speaker • Tweaker, Lover of Web, JavaScript, CSS & HTML5 • @ChrisLove • Love2Dev.com
  • 3. High Performance Single Page Web Applications • Responsive Design • Touch • Mobile First • SPA • Extensible, Scalable Architecture • Web Build and Workflow • Goes Really Fast! • ~395 Pages • 20 Chapters • $9.99 http://amzn.to/1a55L89
  • 4. Slide Deck & Source Code • Slide Deck – slidesha.re/15YTrTT • Source Code – http://GitHub.com/docluv
  • 8. Web Performance Optimization Web performance optimization, WPO, or website optimization involves ongoing monitoring and testing of websites to achieve optimum performance under given constraints. Usually optimization is restricted due to lack of complete information and metrics to evaluate the performance of a website. http://bit.ly/SWEh6E
  • 9. Matt Cutts "Also take a step back for a minute and consider the intent of this change: a faster web is great for everyone, but especially for users. Lots of websites have demonstrated that speeding up the user experience results in more usage. So speeding up your website isn’t just something that can affect your search rankings–it’s a fantastic idea for your users.“ http://bit.ly/SPPB4k
  • 10. SEO & Web Performance • Faster Sites Rank Higher • Faster is Better User Experience • http://bit.ly/1Ezmko6 • Mobile First Web Applications Rank Higher • Call Mobilegeddon • http://bit.ly/1JFpsmE
  • 11. Time is Money • Faster Sites Have Higher Conversion Rates • WalMart - http://bit.ly/S1fHSZ • Google – http://bit.ly/WajJbB • Amazon – http://bit.ly/S3UoAj • ShopZilla - http://bit.ly/RIQMDM
  • 12. WalMart Folks at Walmart knew their pages were slow. As a for instance, initial measurement showed that an item page took about 24 seconds to load for the slowest 5% of users. Why? The usual culprits: too many page elements, slow third-party scripts, multiple hosts (25% of page content is served by partners, affiliates, and Marketplace), and various best practice no-nos http://bit.ly/WajJbB
  • 13. Google’s ½ Second Half a second delay caused a 20% drop in traffic. Half a second delay killed user satisfaction. The lesson, Marissa said, is that speed matters. People do not like to wait. Do not make them. http://bit.ly/TPPhUp
  • 14. Fast Facts • 57% Will Abandon a Slow Site After 3 Seconds • We Have to Concentrate 50% Harder For Slow Sites • 78% Have Felt Stress or Anger With Slow Sites • 44% Say Slow Sites Make Them Anxious • 4% Have Thrown Their Phone http://bit.ly/SuBLDR
  • 15. Web Sites Are Getting Fat and Out of Shape http://httpArchive.org 99 Files Requests – 2+MB 18 JavaScript Files - 318KB 6.4 CSS Files – 61KB 53 Images – 1.3MB 38 TCP Connections 17 Domains 46% Cacheable
  • 16. Web Sites Are Getting Larger
  • 18. That's Great But I Work in the Enterprise
  • 19. Performance IS Relevant • Do you really want to waste $$$ • You want to make co-workers hate you? • And Possibly Throw a Phone at You • Remember the Physiological Stats? • Slow Web Apps Have Higher Data Entry Error Rates • Due to Increase Cognitive Load • Oh And You Are Going Mobile • And You Already Have, Even If You and Your Boss Does Not Acknowledge It
  • 21. Good Code Is Cheaper •Performance Best Practices Lead To: •Well Structured Code •Smaller Code • Easier Maintenance • Fewer Bugs •Encourages Development Best Practices •Encourages Discipline
  • 22. OK How Do I Figure Out How to Fix Things?
  • 23. Measure •Load Time •Page Speed Index •Rendering •Run-Time Performance
  • 24. Set A Performance Budget •Tim Kadlec •http://bit.ly/1CUAfGx •Typically Load Time • Shoot for < 2 Seconds Over Broadband • < 1 Second My Standard • Page Weight • What Doe My Web Site Cost? - http://whatdoesmysitecost.com/ • HTTP Chattiness
  • 25. webpagetest.org • Online Tool • Identifies Common Performance Issues • Must be Public URL http://bit.ly/1dibffr
  • 28. YSlow Rules 1. Minimize HTTP Requests 2. Use a Content Delivery Network 3. Avoid empty src or href 4. Add an Expires or a Cache-Control Header 5. Gzip Components 6. Put StyleSheets at the Top 7. Put Scripts at the Bottom 8. Avoid CSS Expressions 9. Make JavaScript and CSS External 10. Reduce DNS Lookups 11. Minify JavaScript and CSS 12. Avoid Redirects 13. Remove Duplicate Scripts 14. Configure ETags 15. Make AJAX Cacheable 16. Use GET for AJAX Requests 17. Reduce the Number of DOM Elements 18. No 404s 19. Reduce Cookie Size 20. Use Cookie-Free Domains for Components 21. Avoid Filters 22. Do Not Scale Images in HTML 23. Make favicon.ico Small and Cacheable http://yhoo.it/W7BFIw
  • 29. 1. Add A Fav Icon – Eliminate 404s “Most of your scaling problems wont be glamorous“ Mike Krieger http://bit.ly/QeKZsO
  • 30. Make FavIcon Small and Cacheable • Don’t Return 404 • YSlow Rule #18 • Make Sure Its Compatible • PNG/ICO • It Carries Cookie Weight • Instagram Lesson #1 http://bit.ly/RUXEiL
  • 31. 2.Use a CDN • Globally Distributes Resources Closer to Client • Was Expensive • Amazon CloudFront & Azure cost pennies a month
  • 32. 3. Far Future Expires Header • Lets the Browser Cache Resources Locally • Eliminates Future Http Requests • The Fastest Http Request is the one not made • Only Updates Resource if Changed on Server
  • 33. 4. Use LocalStorage For Storage & Caching • Allows You to Keep Data Locally in a Hash Table • localStorage • sessionStorage • Approximately 5-10MB • Replace Cookies • Great For Caching • Use IndexDB for Larger Data Sets
  • 34. AJAX Caching • Checks localStorage Before Making AJAX Call • Stores Data in localStorage with Expiration Value • Radically Reduces Http Requests • Radically Improves Performance • The Fastest AJAX Request is the One That is Never Made.
  • 35. 5. No More Cookies • Cookies Add Weight • Place Resources (img/css/js) on Cookieless Domains • CDNs Are Great For No Cookies • Consider Local Storage Instead
  • 37. Impact of Cookies on Response Time
  • 38. Is 78ms A Big Deal??? • Remember 95 Files • 95 * 78ms = 7410ms or 7+ Seconds • 1248ms when considering 6 parallel connections • Does Cause Delay • Parallel Downloads Help Overall Time • Don’t Use 95 Files, Duh
  • 39. 6. Optimize Images • Images are Too Large • PNGCrush, Kraken.io • Image Sprites • Glyph Fonts • Data URIs • CSS Rules
  • 40. • CSS Sprites • Consider Gyph/Icon Font • CSS Gradients, Border Radius, Shadows • Text • This is a 30KB Image – Possible Change to 0KB*
  • 41. 7. Bundle & Minify CSS & JavaScript • Eliminate Excess HTTP Requests • Reduces Data Footprint • This is a Release or Production Version • Shoot for a Single JS and a Single CSS file in Production
  • 42. 7a. Inline Critical CSS & Remove Unused CSS • Inlining Critical CSS Enables Instant Rendering Experience • Remove Unused CSS • UNCSS Module • Identify Critical CSS • Example: Most Bootstrap Sites Use <10% of Bootstrap • Bootstrap Adds up to 600kb to Page Weight
  • 43. Use A Client Build System • Bundling & Minification is OK • Grunt Is Very Easy & Extensive • Validate Scripts • Combine & Minify Scripts • Validate CSS • Combine & Minify CSS • Critical CSS • UNCSS • Many Other Tasks • Gulp, Broccoli are also good tools • http://bit.ly/1kcrpuo
  • 45. 8. Gzip Text Content • Browsers Support Gzip & Deflate Algorithms • Reduces Text Base Content Size • Makes it Easier to Traverse Intertubes • 14kb Critical Packet Size • This is due to HTTP’s Slow Start • This is the Goal for Optimal Mobile Performance
  • 47. Configure Gzip in Amazon S3 | CloudFront
  • 48. 9. CSS @ Top – JavaScript @ Bottom • CSS is Read & Evaluated to Build CSSOM • Late CSS causes Browser to ‘Start All Over’ • JavaScript is a Blocking Action • Browser Stops Everything • Script Must Be Loaded • Script Must Be Evaluated • Use Async & Defer Attributes
  • 49. 10. External CSS & JavaScript • Allows Resources to be Cached Independently of Markup • Reduces Page Weight • Reduces Chance of Duplicate Code • Can Be Bundled & Minified
  • 51. Bonus – Use AppCache • <html lang="en-US" manifest="ie11WebSite.appcache"> • Stores Resources Locally in a Sandbox Cache for the Domain • Available Offline • Has an Event API
  • 52. Bonus – Use AppCache CACHE MANIFEST # version 0.07 CACHE: #images favicon.ico img/purple-bkg.jpg #css css/site.min.css #js js/applib.js NETWORK: #http://example.com/api/ #http://api.rottentomatoes.com/api/public/v1.0/ FALLBACK: #http://content9.flixster.com/movie/*.jpg /img/offline-poster.png

Editor's Notes

  • #16: Update these #s before the presentation as they are always updating
  • #17: Update chart from latest httpArchive stats