tags ! • Even async scripts can block the load event:Start loading your scripts after onload ! • Reduce HTTP requests with spriting and script concatenation
in the page: <link rel='dns-prefetch' href=‘hostname-to-resolve.com'> ! 2. Fetch subresources early so they're already there when needed: <link rel='subresource' href=‘/path/to/some/script.js'> ! 3.Pre-fetch resources for likely future navgiations: <link rel='prefetch' href=‘/most/likely/next/page.html'> ! 4.Pre-render an entire page in the background (Chrome only) <link rel='prerender' href='/overwhelmingly/likely/next/page.html'>
• Overestimating the time remaining makes it seem to finish quicker • Progress feedback that starts sooner finishes sooner • Good analogy with the 'close evelator doors' button, it likely doesn't do anything, but people like it because it makes them feel part of the process, partial control