我阅读了高性能网站:前端工程师必备知识,其中作者建议应将所有 JavaScript 代码外部化并放在页面底部而不是放在头部。
本示例对此进行了说明。外部脚本标签会阻止页面的下载和渐进式渲染,因此解决方案是将其放在页面底部。
然而,在他的第二本书甚至更快的网站:Web 开发人员的性能最佳实践中,他谈到了内联JavaScript 标记。
内联脚本还会阻止页面的下载和呈现,因此他建议将它们也移到页面底部。但是,此行为仍会完全阻止页面的呈现,如本示例所示
为什么将外部脚本移动到页面底部可以让页面逐步呈现,而移动内联脚本会完全阻止呈现,直到脚本执行?
PS:
问题不在于为什么将 JavaScript 添加到页面底部而不是将它们放在头部。这就是为什么底部内联脚本会阻止渲染而底部外部脚本不会。