0

背景:我更喜欢将所有 CSS 和 Javascript 保存在单独的 .css/.js 文件中。(原因是它们被许多页面共享,因此以这种方式,这些文件中的静态数据不会随着每个页面视图传输)。这导致某些页面有 5-6 个“链接 rel”或“脚本类型”语句。

现在,通常情况下,这意味着浏览器将对这些 css/js 文件中的每一个发出单独的请求,并且有效的页面加载时间可能会增加 - 比如说 5 次往返请求变成 5 倍(如果我在这里错了,请纠正我)。

我的问题是:

1)现代浏览器是否默认请求保持连接?

2)如果他们这样做,那么这是否意味着额外的文件来源(css/js)不会增加有效加载时间?例如 - 服务器是否会假设浏览器将请求 css/js 文件,并因此继续发送它(从而避免额外的请求)?

简而言之 - 任何人都可以解释加载时间何时不会通过拥有单独的 css/js 文件而增加,如果它总是增加,那么加载时间增加与包含的文件数量成正比吗?

问候,

J.P

4

1 回答 1

0
  1. 是的,使用 HTTP/1.1 的浏览器通常应该使用保持连接。

  2. 服务器不一定会假设它;keep-alive 应该意味着没有单独的 DNS 查找 - 该文件仍然被请求。

如果配置正确,您应该会发现(例如,可以使用 Firefox+Firebug 验证)第一个请求会生成这些文件的正常下载,但后续请求会生成 HTTP 304(文件未修改)请求,其中内容自那时以来没有更改最后一次加载,因此它应该可以从缓存中获得。

如果这是一个真正的问题,您可能需要考虑使用 Expires 标头来指定文件的长寿命,因此甚至永远不会发出请求(甚至不会请求查看文件是否已更改)

于 2010-11-25T14:01:57.890 回答