JS调用放到网站网页底部的原因

浏览器加载页面是按从上到下顺序加载的。加载 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。如果有,那么就会报错。

作者:佚名
来源:互联网

兰州宏点信息技术有限责任公司,简称宏点网络,品牌网站与互联网应用服务商,成立于2001年8月28日。宏点网络致力于为成长中的政企客户提供互联网应用开发和配套服务。我们从事甘肃兰州中小企业网站建设、网页设计,各级政府站群、各类学校站群、大中型国企站群项目的实施,微信小程序开发和微信公众号开发以及苹果iOS的APP开发和安卓Android的APP开发等业务。
历史
400-6808-205
全国24小时客服专线