-2

假设我有以下设置:

Page1.html

  • 包括 master.css、page1.css 和 page1.js

Page2.html

  • 包括 master.css、page2.css 和 page2.js

有人告诉我,合并两个 js 和其他 css 文件会更好地进行缓存?但是单独的文件不会也被缓存吗?我看不出这有什么不同(除了可维护性可能——我个人喜欢这种分离)。

组织这样的事情的最高效和最明智的方式是什么?

免责声明::微优化不是这里的问题——我想在开始我的项目之前知道最佳实践是什么,这样我以后就不必重新审视了。

4

2 回答 2

3

好处是:

如果用户访问 Page1,然后是 Page2,他们的浏览器将获取:

Page1.html
-> master.css
-> page1.css
-> page1.js

然后,过了一段时间:

Page2.html
-> [ no need to re-fetch cached items ]

如果 page1.css <-> page2.css 和 page1.js <-> page2.js 基本相似,则可以(最坏的情况)节省两次 DNS 查找和两次 HTTP 协商,这可能会相当慢。

至少,您可能不必为 page2.css 和 page2.js 两次“收听”大约 1KiB 的传入 HTTP 标头。(尽管所有主要浏览器都可能将这些请求链接在一起。)

于 2011-11-28T21:07:49.363 回答
1

这里有几件事需要考虑:

  • page1 和 page2 文件的大小。如果它们非常小,则可能不值得单独的 http 请求将它们放入单独的文件中的额外开销。

  • 合并文件的总大小:某些移动设备不热衷于缓存大文件。

  • 您的用户在访问您的网站期间同时点击 page1 和 page2 的可能性。

附注:如果您担心服务器端组织,您可以在开发时将文件分开,并将文件合并为一个作为构建的一部分。

于 2011-11-28T21:15:27.243 回答