我想知道是否更好
<link>
A) 使用或包含外部 CSS 文件
B) 将 CSS 直接回显/刷新/打印到<head>
.
就个人而言,我喜欢选项 B,因为它允许
- 删除评论/缩小
- 使用放在根目录上方的 css
- 压缩多个 css 文件 = 更少的 HTTP 请求
在我把它付诸实践之前,我应该(不)有很大的理由吗?
我想知道是否更好
<link>
A) 使用或包含外部 CSS 文件
B) 将 CSS 直接回显/刷新/打印到<head>
.
就个人而言,我喜欢选项 B,因为它允许
在我把它付诸实践之前,我应该(不)有很大的理由吗?
选项 A 会给你一个额外的 HTTP 请求,但浏览器会将 CSS 文件保存在缓存中,所以这没什么大不了的。
另一方面,即使选项 B 会为您保存一个 HTTP 请求,您的 HTML 页面也会相当大,如果您的 HTML 页面经常更改,浏览器将无法缓存它。所以你的服务器将不得不处理更多的数据传输。
对于内容很少更改的页面,请使用选项 B。否则,请使用选项 A。
如果您正在计划一个非常高流量的网站,那么选择 B(如下所述,这不是一个好主意,除非您的 html 几乎从不改变,例如谷歌首页)。我个人喜欢 A,因为它允许您将样式远离您的 html,并允许您将特定样式表用于不同的媒体,甚至可以轻松地从一种媒体切换到另一种媒体。此外,它易于维护(使用版本)和扩展。
如果您担心请求,请处理您的图像。您可以在 CSS 中将所有图像添加为 base64 并阻止许多请求,或者对多个图标使用图像平移技术。
您还可以离线缩小 css,并使用脚本或服务器端编码将所有 css 样式表放在一个文件中。
我的 5 美分。
最好使用选项 (A) 进行缓存,但不要害怕,您也可以获得选项 B 的好处!只需使用 php 扩展名命名您的 css 文件,然后将其包含在链接标记中。然后,PHP 将在将其发送到浏览器之前解析此文件,以便您可以删除评论/缩小它或包含服务器上任何位置的 css 文件。至于你的第三点,如果浏览器缓存它,那么它第一次是 2 个请求,但第二次只有 1 个请求,所以总的来说你得到的请求更少。
从长远来看,通过文档头部的标签加载外部样式表会更好。这允许浏览器在加载样式表后对其进行缓存,而您不必在每个页面请求时都下载它。
如果您担心缩小样式表,您可以使用许多工具来做到这一点 - 请参阅有关CSS 缩小器的任何建议?有很多建议。
简短的回答是你不应该使用方法 B。你可以在下面阅读为什么我认为你不应该那样做。
您应该使主 HTML 文件的文件大小尽可能小,因为您无法缓存该文件(大多数情况下是因为它的动态特性)。
在本地测试时不应该进行过早的优化。但是,当您部署代码时,您应该缩小 CSS 并将所有文件合并到一个文件中。也不要忘记给 CSS 文件一个遥远的未来过期标头(缓存非常重要)。
雅虎加速网站的最佳实践也为您提供了很多信息(我的很多答案都是基于该阅读)如何加速您的网站,并且是一本非常好的读物。
正确答案取决于页面的目的以及样式的结构。
在我工作的网站上,我们有几个关键页面,其中页面速度是一个关键因素(例如人们可以下载我们软件的登录页面),但我们还希望为看到多个页面的访问者缓存我们的 CSS 或可能会在不久的将来回来。
您也很少只有一个 CSS 文件,常见的设置可能是: 一个 css 重置文件 一个 template.css 文件,其中包含由所有页面共享的网站的一般样式 一个每页 css 文件,为页面定义特定规则需要缓存 IEfix css 文件以实现 Internet Explorer 兼容性
css 重置、template.css 和 IRfix 文件非常适合缩小为将被缓存的单个外部文件。
每页 css 文件是包含在标签中的一个很好的候选者,因为它不打算被重用,而且 http 请求的成本通常高于传输字节的时间成本。
如果您的页面具有未在整个站点中共享的特定样式,请内联所有内容。