JavaScript的执行会阻塞HTML的解析渲染;
JavaScript的下载会阻塞HTML的解析,不会阻塞渲染。
内嵌式script时,不管放在哪里,都会因为执行js而阻碍html的解析和渲染
外部引入script时,network线程下载只会影响html的解析,不会影响渲染。所以将script标签放在body尾部可以避免出现因为阻塞html渲染而导致的长时间白屏现象。
当使用script标签引入外部js文件时, Network线程会阻塞HTML的解析, 但不会阻塞HTML的渲染;
因此网上大部分的观点是错误的, JavaScript执行确实会阻塞HTML的解析渲染, 若是以嵌入的方式引入JavaScript, 不管script标签是放在head标签中或是body标签尾部, 页面都会由于JavaScript的执行而持续白屏; 而在引入外部js文件的情况, 由于Network线程下载外部js文件仅阻塞HTML的解析而不会阻塞HTML的渲染, script标签置于body标签尾部可以避免由于js文件下载时间太长导致的页面持续白屏!