【发布时间】:2015-07-13 18:13:37
【问题描述】:
我目前在一个大型网站上工作,该网站有相当多的技术债务,我们需要解决。网站中加载了相当多的 js 和 css。目前,文件是按层聚合和缩小的。每个页面使用一个层,而其他层仅在实际使用它们的页面上加载。
例如:
page 1:
- default.css
- page1.css
- some-feature.css
- default.js
- page1.js
- some-feature.js
page 2:
- default.css
- page2.css
- default.js
- page2.js
page 3:
- default.css
- page3.css
- some-feature.css
- some-other-feature.css
- default.js
- page3.js
- some-feature.js
- some-other-feature.js
现在,除了这些资源之外,还加载了很多外部资源,用于跟踪、广告、社交整合等。
我觉得如果这些资源在一个 js 和一个 css 文件中聚合和缩小到每页,它们将得到更快的服务(在初始请求和后续请求中)。例如page1.css + page1.js,在另一个页面上它将是page2.css + page2.js。虽然这样会减少请求,但最终也会加载一些常规内容两次(如原始的default.css)
加载这些资源的首选方式是什么?你有这方面的测试结果吗?
【问题讨论】:
-
如果您已经加载了一个特定的 URL,并且它被缓存了,那么它就不会被重新获取。如果您的服务器仍在提供静态资产 304,请使用远期到期。一旦设置了未来日期,进一步的请求将 100% 在本地完成,这比捆绑和解包不需要的资源要快。
标签: javascript html css performance frontend