CSS是否在单独的文件上?
哪一个是更好的选择:将CSS存储在单独的文件或同一页面上 让我们忘记这样一个事实:更改文件上的CSS会使它直接应用所有HTML页面。我使用动态语言来生成整个输出,所以这并不重要 我能想到几件事:CSS是否在单独的文件上?,css,dynamic,Css,Dynamic,哪一个是更好的选择:将CSS存储在单独的文件或同一页面上 让我们忘记这样一个事实:更改文件上的CSS会使它直接应用所有HTML页面。我使用动态语言来生成整个输出,所以这并不重要 我能想到几件事: 单独文件上的CSS生成的带宽负载更少 单独文件上的CSS需要另一个HTTP请求 另一方面,如果我用Zlib压缩数据传输,同一页上的CSS在带宽方面应该不重要,对吗?因此,我少了一个HTTP请求?外部CSS文件的主要好处是: 它可以在多个页面上使用;及 它可以缓存,因此不需要在每个页面上加载 所以,如
另一方面,如果我用Zlib压缩数据传输,同一页上的CSS在带宽方面应该不重要,对吗?因此,我少了一个HTTP请求?外部CSS文件的主要好处是:
- 它可以在多个页面上使用;及
- 它可以缓存,因此不需要在每个页面上加载
元素动态生成页眉,然后有效地缓存这些文件,从而发送外部CSS文件的正确组合
3。用户滚动主题
这超出了(2)用户可以选择的范围,比如颜色、字体和大小,以至于您无法将这些选择打包到单个主题包中,但您必须为该用户生成一组CSS。在这种情况下,您可能仍然有一些常见的CSS。将其作为外部CSS文件发送(同样,有效地缓存它们)
动态内容可能在页面上最好,或者您仍然可以使用外部文件,因为
没有理由不能指向脚本而不是静态文件。例如:
<link rel="stylesheet" href="/css/custom.php?user=bob" type="text/css">
其中,查询字符串由登录用户的标头动态生成。该脚本将查找用户首选项并生成一个动态CSS文件。这可以有效地缓存,而将其直接放在HTML文件中是不可能的(除非整个HTML文件可以有效地缓存)
4。基于规则的CSS生成
在此之前,我编写过一个报告系统,它接受了用户或报告编写者指定的许多规则和自定义报告,并生成了一个完整的HTML页面(基于自定义报告定义中要求的表和/或图表),并根据规则对其进行样式设置。这确实是动态CSS。问题是,这里也有缓存的潜力。HTML页面生成如下动态链接:
<link rel="stylesheet" href="/css/report.annual-sales.0001.css" type="text/css">
其中“年度销售额”是报告ID,0001类似于一个版本。当规则更改时,您将创建一个新版本,并且可以有效地缓存每个报表的每个版本
结论
因此,我无法确定外部CSS文件是否适合您,但我已经看到并开发了上述每个场景,我很难相信您无法从CSS中获得某种形式的缓存,此时它应该是外部的
我曾在中写过关于有效CSS的问题,但其原理和技术适用于任何语言,而不仅仅是PHP
您可能还想参考相关的问题浏览器可以缓存CSS文件(除非更改很多)。带宽不应该改变,因为信息是发送的,不管你把它放在哪里
因此,除非css非常静态,否则将其放入页面花费的时间更少。我总是将两者混合使用
- 站点范围的样式位于单独的文件(&)中
- 任何特定于页面的样式都放在
中(我已经设置了我的页面模板,以便随时轻松地在
中插入CSS)
如果您正在动态生成HTML(例如,从模板生成),嵌入CSS还允许您使用生成HTML时使用的相同上下文(数据、程序状态)动态生成CSS,而不必在后续请求中再次设置相同的上下文来生成CSS 例如,考虑一个使用几百个图像中的一个为背景的页面,这取决于计算昂贵的一些状态。你可以