A presentation at Angular Denver in in Denver, CO, USA by Christopher A DeMars
Hacking the Human Perception Chris DeMars β @saltnburnem https://pixabay.com/en/brain-icon-human-background-idea-1710293/ Chris DeMars β @saltnburnem 1 π #DeveloperCommunity π#AngularDenver
Chris DeMars Front-End Developer Chris DeMars β @saltnburnem 2 π #DeveloperCommunity π#AngularDenver
Thatβs me! Google Developer Expert Microsoft MVP Oracle Groundbreaker Ambassador Internatonal Speaker Founder of Vuetroit Host of Tales From the Script π Tattoos & Horror Chris DeMars β @saltnburnem 3 π #DeveloperCommunity π#AngularDenver
Why Are We Here Chris? Chris DeMars β @saltnburnem 4 π #DeveloperCommunity π#AngularDenver
Letβs Talk! Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) Auditing & Testing Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) Auditing & Testing 2.) Time to First Paint Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) Auditing & Testing 2.) Time to First Paint 3.) Time to First Byte Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) 2.) 3.) 4.) Auditing & Testing Time to First Paint Time to First Byte Time to First Interactive Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) 2.) 3.) 4.) 5.) Auditing & Testing Time to First Paint Time to First Byte Time to First Interactive Perceived Performance Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) Auditing & Testing 2.) Time to First Paint 3.) Time to First Byte 4.) Time to First Interactive 5.) Perceived Performance a.) Critical CSS Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) Auditing & Testing 2.) Time to First Paint 3.) Time to First Byte 4.) Time to First Interactive 5.) Perceived Performance a.) Critical CSS b.) Skeleton Screens Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Letβs Talk! 1.) Auditing & Testing 2.) Time to First Paint 3.) Time to First Byte 4.) Time to First Interactive 5.) Perceived Performance a.) Critical CSS b.) Skeleton Screens c.) Fun Distractions Chris DeMars β @saltnburnem 5 π #DeveloperCommunity π#AngularDenver
Performance? Chris DeMars β @saltnburnem 6 π #DeveloperCommunity π#AngularDenver
Visibility of System Status https://www.nngroup.com/articles/ten-usability-heuristics/ Chris DeMars β @saltnburnem 7 π #DeveloperCommunity π#AngularDenver
Visibility of System Status The system should always keep users informed about what is going on, through appropriate feedback within reasonable time. https://www.nngroup.com/articles/ten-usability-heuristics/ Chris DeMars β @saltnburnem 7 π #DeveloperCommunity π#AngularDenver
Fast? Chris DeMars β @saltnburnem 8 π #DeveloperCommunity π#AngularDenver
Fast? Chris DeMars β @saltnburnem ! Quick Desktop Load 8 π #DeveloperCommunity π#AngularDenver
Fast? Chris DeMars β @saltnburnem ! Quick Desktop Load ! Quick Mobile Load 8 π #DeveloperCommunity π#AngularDenver
Fast? Chris DeMars β @saltnburnem ! Quick Desktop Load ! Quick Mobile Load ! Time 8 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 9 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 9 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 10 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 10 π #DeveloperCommunity π#AngularDenver
Minimal Requests? Chris DeMars β @saltnburnem 11 π #DeveloperCommunity π#AngularDenver
Minimal Requests? Chris DeMars β @saltnburnem ! How many? 11 π #DeveloperCommunity π#AngularDenver
Minimal Requests? Chris DeMars β @saltnburnem ! How many? ! What does that mean? 11 π #DeveloperCommunity π#AngularDenver
Load Time? Chris DeMars β @saltnburnem 12 π #DeveloperCommunity π#AngularDenver
Load Time? Chris DeMars β @saltnburnem ! Desktop 12 π #DeveloperCommunity π#AngularDenver
Load Time? Chris DeMars β @saltnburnem ! Desktop ! 3G 12 π #DeveloperCommunity π#AngularDenver
Load Time? Chris DeMars β @saltnburnem ! Desktop ! 3G ! 4G 12 π #DeveloperCommunity π#AngularDenver
Load Time? Chris DeMars β @saltnburnem ! Desktop ! 3G ! 4G ! 2G 12 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 13 https://bit.ly/2Uc47xa π #DeveloperCommunity π#AngularDenver
Performance Chris DeMars β @saltnburnem 14 π #DeveloperCommunity π#AngularDenver
Performance on the front end # # Chris DeMars β @saltnburnem 14 π #DeveloperCommunity π#AngularDenver
Addy Osmani @addyosmani #PerfMatters Chris DeMars β @saltnburnem 15 π #DeveloperCommunity π#AngularDenver
User Centric Metrics Chris DeMars β @saltnburnem 16 π #DeveloperCommunity π#AngularDenver
User Centric Metrics 1.) Is it happening? Chris DeMars β @saltnburnem 16 π #DeveloperCommunity π#AngularDenver
User Centric Metrics 1.) Is it happening? 2.) Is it useful? Chris DeMars β @saltnburnem 16 π #DeveloperCommunity π#AngularDenver
User Centric Metrics 1.) Is it happening? 2.) Is it useful? 3.) Is it useable? Chris DeMars β @saltnburnem 16 π #DeveloperCommunity π#AngularDenver
User Centric Metrics 1.) Is it happening? 2.) Is it useful? 3.) Is it useable? 4.) Is it delightful? Chris DeMars β @saltnburnem 16 π #DeveloperCommunity π#AngularDenver
Testing & Audits Chris DeMars β @saltnburnem 17 π #DeveloperCommunity π#AngularDenver
Lighthouse Chris DeMars β @saltnburnem 18 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 19 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 19 π #DeveloperCommunity π#AngularDenver
WebPageTest Chris DeMars β @saltnburnem 20 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 21 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 21 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 22 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 23 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 24 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 25 π #DeveloperCommunity π#AngularDenver
Chrome DevTools Chris DeMars β @saltnburnem 26 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 27 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 27 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 28 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 28 π #DeveloperCommunity π#AngularDenver
Time to First Paint Chris DeMars β @saltnburnem 29 π #DeveloperCommunity π#AngularDenver
Time to First Paint & Time to First Contentful Paint Chris DeMars β @saltnburnem 30 π #DeveloperCommunity π#AngularDenver
Time to First Paint Chris DeMars β @saltnburnem 31 π #DeveloperCommunity π#AngularDenver
Time to First Paint The point where the browser renders anything to the screen. Chris DeMars β @saltnburnem 31 π #DeveloperCommunity π#AngularDenver
Time to First Contentful Paint Chris DeMars β @saltnburnem 32 π #DeveloperCommunity π#AngularDenver
Time to First Contentful Paint The point where the browser renders the first bit of content from the DOM. Chris DeMars β @saltnburnem 32 π #DeveloperCommunity π#AngularDenver
First Paint 1.4s First Contentful Paint 1.4s Chris DeMars β @saltnburnem 33 π #DeveloperCommunity π#AngularDenver
First Paint 1.4s First Contentful Paint 1.4s Chris DeMars β @saltnburnem 33 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 34 π #DeveloperCommunity π#AngularDenver
Time to First Meaningful Paint Chris DeMars β @saltnburnem 35 π #DeveloperCommunity π#AngularDenver
https://bit.ly/2HVcwvP Chris DeMars β @saltnburnem 36 π #DeveloperCommunity π#AngularDenver
Time to First Byte Chris DeMars β @saltnburnem 37 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 38 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 38 π #DeveloperCommunity π#AngularDenver
https://www.keycdn.com/support/what-is-ttfb/ Chris DeMars β @saltnburnem 39 π #DeveloperCommunity π#AngularDenver
TTFB 230ms Chris DeMars β @saltnburnem 40 π #DeveloperCommunity π#AngularDenver
Time to Interactive Chris DeMars β @saltnburnem 41 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 42 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 42 π #DeveloperCommunity π#AngularDenver
Why measure DOMContentLoaded? Chris DeMars β @saltnburnem 43 π #DeveloperCommunity π#AngularDenver
Critical Rendering Path Chris DeMars β @saltnburnem 43 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 44 https://bit.ly/2JazYc6 π #DeveloperCommunity π#AngularDenver
Perceived Performance Chris DeMars β @saltnburnem 45 π #DeveloperCommunity π#AngularDenver
Perceived performance is a measure of how quick a user thinks your site is, and thatβs often more important than its true speed. - Matt West Chris DeMars β @saltnburnem 46 π #DeveloperCommunity π#AngularDenver
Critical CSS Chris DeMars β @saltnburnem 47 π #DeveloperCommunity π#AngularDenver
https://www.smashingmagazine.com/2015/08/understanding-critical-css/ Chris DeMars β @saltnburnem 48 π #DeveloperCommunity π#AngularDenver
https://www.smashingmagazine.com/2015/08/understanding-critical-css/ Chris DeMars β @saltnburnem 49 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 50 π #DeveloperCommunity π#AngularDenver
π Penthouse criticalCSS π Critical π Chris DeMars β @saltnburnem 50 π #DeveloperCommunity π#AngularDenver
Skeleton Screens Chris DeMars β @saltnburnem 51 π #DeveloperCommunity π#AngularDenver
βA skeleton screen is essentially a blank version of a page into which information is gradually loaded.β - Luke Wroblewski Chris DeMars β @saltnburnem 52 π #DeveloperCommunity π#AngularDenver
βUsers donβt care about performance stats in terminal, they do care about what they see in front of them.β - Callum Hart Chris DeMars β @saltnburnem 53 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 54 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 55 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 56 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 57 π #DeveloperCommunity π#AngularDenver
βDesign for operational transparency by providing progress-UX thatβs robust and meaningful.β - Nick Babich Chris DeMars β @saltnburnem 58 π #DeveloperCommunity π#AngularDenver
Great Info! https://www.mobify.com/insights/ designing-appearance-speed/ Chris DeMars β @saltnburnem 59 π #DeveloperCommunity π#AngularDenver
Fun Distractions Chris DeMars β @saltnburnem 60 π #DeveloperCommunity π#AngularDenver
Offer distractions so users donβt get bored! Chris DeMars β @saltnburnem 61 π #DeveloperCommunity π#AngularDenver
Offer distractions so users donβt get bored! Chris DeMars β @saltnburnem 61 π #DeveloperCommunity π#AngularDenver
What did we learn? Chris DeMars β @saltnburnem 62 π #DeveloperCommunity π#AngularDenver
What did we learn? β Performance matters Chris DeMars β @saltnburnem 62 π #DeveloperCommunity π#AngularDenver
What did we learn? β Performance matters β How to test performance on the front end Chris DeMars β @saltnburnem 62 π #DeveloperCommunity π#AngularDenver
What did we learn? β Performance matters β How to test performance on the front end β Different metrics we can measure Chris DeMars β @saltnburnem 62 π #DeveloperCommunity π#AngularDenver
What did we learn? β Performance matters β How to test performance on the front end β Different metrics we can measure β Perceived performance Chris DeMars β @saltnburnem 62 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 63 π #DeveloperCommunity π#AngularDenver
Chris DeMars β @saltnburnem 63 π #DeveloperCommunity π#AngularDenver
Resources https://goo.gl/dqxsXi Chris DeMars β @saltnburnem 64 π #DeveloperCommunity π#AngularDenver
Jeremy Wagner @malchata Chris DeMars β @saltnburnem 65 π #DeveloperCommunity π#AngularDenver
Jeremy Wagner @malchata Chris DeMars β @saltnburnem 65 π #DeveloperCommunity π#AngularDenver
Responsible JavaScript: Part 1 https://bit.ly/2uwST7U Part 2 https://bit.ly/2K5zZO2 Chris DeMars β @saltnburnem 66 π #DeveloperCommunity π#AngularDenver
Thanks! Chris DeMars β @saltnburnem Chris DeMars β @saltnburnem π #DeveloperCommunity π#AngularDenver