合理布局JS调用在网站页面的位置,有利于用户体验

日期:2016-05-10 08:06:44

大家都知道浏览器加载页面是按从上到下顺序加载的。加载 JS 并执行的时候,会阻塞其他资源的加载。这是因为 JS 可能会有 DOM 、样式等等操作,所以浏览器要先加载这段 JS 并执行,再加载放在它后面的 HTML、CSS。

因此,加入一段巨大的 JS 放在最上面,浏览器首先要下载并执行,这段时间里面,页面是空白的。相比于加载了部分 HTML 和 样式 但是没有 JS 交互功能,显然是后者对于用户体验要好。然而,是否所有 JS 都要放在最下面呢?并不是。
举实际的例子:
html5shiv是一段 JS 脚本,用来是早期 IE 兼容 HTML5 新增标签的支持。
这个 JS 脚本,必须要放在上面 head 部分,为什么呢?因为在老 IE 浏览器下面,不支持 <section> 这样的标签,所以用 JS 来兼容。如果放在底部,等 IE 浏览器先报错了,才会执行这块 JS 没多大用。
jQuery 这类的库,也是建议放在最上面的。首先***的疑问可能是 jQuery 这么大,放在上面岂不是阻塞的很厉害?
不过 jQuery 通常引用的是 CDN 地址,而且经过 gzip 压缩之后并不是很大,而且引用公共 CDN 上面的 jQuery 话,很大几率早已被用户缓存下来了。所以可以不需要考虑阻塞产生的性能问题。
而我们都知道,JS 是按顺序执行下来的。也就是你没运行 jQuery 之前,先运行了调用 jQuery 函数的代码,就会报错。你可以控制你自己写的 JS 放在页面最下面,放在 jQuery 下面,但是你无法保证页面上其他地方会不会有人图省事直接在 HTML 代码里面输出 JS。如果有,那么就会报错。
***易迅网络建议,类库***放在上面加载,其余代码尽可能放在最底下加载。


上一篇文章:
下一篇文章: