我最近一直致力于改善我们网站的前端性能,并采用了许多最佳实践。
但是我有一个最近的例子,其中一些做法彼此略有不同
- 最小化 HTTP 请求
- 为了“欺骗”浏览器发出更多并发请求,从不同的域提供一些资产
- 利用浏览器缓存
为什么?
我们过去常常将几乎所有的 Javascript 捆绑到一个文件中,以最大限度地减少 HTTP 请求。这包括 JQuery 和 JQuery UI。
我认为这很愚蠢,因为许多用户可能已经在他们的浏览器中缓存了 JQuery,所以我决定我们应该从 all.js 中删除它,而是从 Google 的 CDN 中提供它。这将节省用户再次下载代码的时间,并且因为它位于不同的域中,它可以与我们自己域中的其他资源并行下载。
并发下载如下图所示:
这当然增加了没有缓存 JQuery 的人的请求数量,但这并不是很好。
所以我的问题是:
这种改变是明智的吗?利用缓存和允许并发请求的好处是否超过请求数量的轻微增加?