Issue link: https://read.uberflip.com/i/1146286
45 Chapter 6 CHAPTER 6 Rule 6: Put Scripts at the Bottom6 Chapter 5 described how stylesheets near the bottom of the page prohibit progres- sive rendering, and how moving them to the document HEAD eliminates the problem. Scripts (external JavaScript files) pose a similar problem, but the solution is just the opposite: it's better to move scripts from the top of the page to the bottom (when possible). This enables progressive rendering and achieves greater download parallel- ization. Let's first look at an example of these problems. Problems with Scripts The best way to demonstrate the issues with scripts is by using an example that has a script in the middle of the page. Scripts in the Middle http://stevesouders.com/hpws/js-middle.php This script is programmed to take 10 seconds to load, so it's easy to see the prob- lem—the bottom half of the page takes about 10 seconds to appear (see the section "sleep.cgi" in Chapter 5 for an explanation of how components are configured to have specific load times). This occurs because the script blocks parallel download- ing. We'll come back to this problem after a review of how browsers download in parallel. The other problem with the example page has to do with progressive rendering. When using stylesheets, progressive rendering is blocked until all stylesheets have been downloaded. That's why it's best to move stylesheets to the document HEAD, so they are downloaded first and rendering isn't blocked. With scripts, progressive ren- dering is blocked for all content below the script. Moving scripts lower in the page means more content is rendered progressively.

