那为什么还要将引用的外部js放在下面,外部css放在上面?(浏览器会有自己的解析顺序)
仅仅是一种良好的编码习惯吗?还是的确会对性能有好处?好处体现在哪些方面?
顺便问一下,有些知名网站的首页会把所有的js和css都写在html的head中,这又是一种什么现象?他们的考虑点在哪里?
CSS放在前端是页面渲染时首先是根据DOM结构生成一个DOM树然后加上CSS样式生成一个渲染树,如果CSS放在后面可能页面会出现闪跳的感觉,
js非阻塞加载解决方案也有
2是用createElement来动态生成,但是这样有一个问题就是加载顺序在IE下不一定会是按代码写的顺序来加载,可能会影响到依赖项,
所以应该是这样,把必须的js和css放顶部,把不那么重要的css和js放底部。
JS 和 CSS 在页面中的位置,会影响其他资源(指 img 等非 js 和 css 资源)的加载顺序,究其原因,有三个值得注意的点:
1: JS 有可能会修改 DOM. 典型的,可能会有 document.write.
这意味着,在当前 JS 加载和执行完成前,后续所有资源的下载有可能是没必要的 这是 JS 阻塞后续资源下载的根本原因。
2: JS 的执行有可能依赖最新样式。比如,可能会有 var width = $('#id').width(). 这意味着,JS 代码在执行前,
浏览器必须保证在此 JS 之前的所有css(无论外链还是内嵌)都已下载和解析完成。这是 CSS 阻塞后续 JS 执行的根本原因。
3: 现代浏览器很聪明,会进行 prefetch 优化。性能是如此重要,现代浏览器在竞争中,在 UI update 线程之外,
还会开启另一个线程,对后续 JS 和 CSS 提前下载(注意,仅提前下载,并不执行)。有了 prefetch 优化,这意味着,
在不存在任何阻塞的情况下,理论上 JS 和 CSS 的下载时机都非常优先,和位置无关。
311



被折叠的 条评论
为什么被折叠?



