game into a really bad game. 10 milliseconds on an e-commerce can reduce sales. 1 Interval User Perspective 0 - 100 milliseconds Instant 100 - 300 milliseconds Slight Perceptible Delay 300 - 1000 milliseconds Task Focus, Perceptible Delay 1+ second Mental Context Switch 10+ seconds I'll Come Back Later
game into a really bad game. 10 milliseconds on an e-commerce can reduce sales. 1 Interval User Perspective 0 - 100 milliseconds Instant 100 - 300 milliseconds Slight Perceptible Delay 300 - 1000 milliseconds Task Focus, Perceptible Delay 1+ second Mental Context Switch 10+ seconds I'll Come Back Later
game into a really bad game. 10 milliseconds on an e-commerce can reduce sales. 1 Interval User Perspective 0 - 100 milliseconds Instant 100 - 300 milliseconds Slight Perceptible Delay 300 - 1000 milliseconds Task Focus, Perceptible Delay 1+ second Mental Context Switch 10+ seconds I'll Come Back Later
API abstraction to Single Page Applications. Our solution subsequent navigations are handled without a full page load Initial Page Loaded additional content is requested via Ajaxy techniques Ajax Request Update the URL Render Page Prepare Page Flip Screen Finalize Request pages are bookmarkable and sharable a screen can be understood as a page renderer once content is ready, flip the screen render relevant parts of the page URL Routing makes it easy to wire up route handlers for different application states
performance by keeping rendered pages around. History navigations should remember the scroll position. Block UI rendering until data is loaded. Back should be quick; users don’t expect data to have changed much. Consider all the edge cases
user navigation. Provide server side render to prevent SEO problems Manage screens carefully to avoid memory leaks. Load code as late as possible. Consider all the edge cases