我使用的是CMS(WordPress),并且在每个页面上都有一系列我正在加载的外部样式表,尽管其中一些样式表是特定于页面的。总体而言,我从YSLOW和页面速度中获得不良分数,因此我正在考虑添加一些PHP条件,以告诉浏览器仅根据需要加载页面特定的CSS文件。但是,我想知道我是否真的会减少加载时间,因为我将为浏览器添加更多的PHP请求。

有帮助吗?

解决方案

通过添加一些PHP条件您 没有为浏览器添加更多的PHP请求。
老实说,PHP根本不向浏览器提出请求。

并且在PHP代码中添加一些条件将不会影响任何性能。但是,将浏览器保存在不必要的CSS请求中。
因此,当然会更好。

其他提示

您只能拥有1(2个最大)全局CSS文件

之后,如果您需要特定于页面的CSS,可以再有1或2

不要 将PHP文件作为CSS作为启动PHP解释器的ACT的加载比提供静态CSS文件的数百倍。因此,在CSS中添加PHP条件并重命名。PHP不是答案

您可能要研究的是将所有CSS文件合并到一个文件中,并使用特殊类触发它们

例如,而不是这样做:

main.css

body { background-color: black; color: white; }

my-custom-page.css

body { background-color: white; color: black; }

只要这样做:

main.css

body { background-color: black; color: white; }
body.custompage { background-color: white; color: black; }

并在您想要的行为时,将class =“自定义页”添加到您的身体元素

因为身体限制比仅仅是身体具有更多的预选赛,所以它将具有更高的优先级并覆盖您以前的声明。你也可以做

.custompage a { color: red; }
.custompage p { font-weight: bold; }

然后,您可以有一个相同的CSS呼吁所有页面

和浏览器缓存喜欢

在这种情况下,我不确定您对PHP请求的含义,尽管听起来您正在权衡PHP条件语句与浏览器请求的性能影响。

尽可能减少浏览器请求的数量,几乎总是会产生更大的影响(实际上是更大的影响)。除非您的有条件陈述非常复杂,否则可能会在数量级中衡量差异。

如果是一个相对简单的网站(例如,没有提出大量服务器端网络请求或进行复杂的服务器端计算的网站),大多数页面加载速度可以在客户端端进行。我强烈推荐史蒂夫·苏德斯的书 高性能网站 有关此的更多信息。

页面加载profiler(例如Firebug的“ Net”选项卡或Safari/Chrome的“资源”选项卡)也将最终告诉您您的优化是否值得。尽管他们从技术上仅从浏览器的角度来衡量性能,但还包括服务器处理和响应请求的时间。如果您的HTML文档的请求放慢了(我怀疑它会放慢),那么这很可能是由于额外的PHP代码所致。我希望即使消除一个不必要的样式表请求也将远远抵消有条件声明的性能影响。

将所有CSS加入一个CSS。

+-2 kb不会很重要,但是少的请求很重要。

CSTIDY可以完成这项工作。

JavaScript也是如此。对性能的巨大影响。

这取决于您的服务器硬件,样式表的大小以及是否安装了任何OpCode缓存PHP扩展名(例如Eaccelerator)。

但是在大多数情况下,网络是主要的瓶颈,因此添加这些条件可能是一个好主意。

这在很大程度上取决于网络人群。但是,网络几乎总是比CPU时间慢,因此,如果您可以删除其他HTTP请求,那么您会更好。

还要记住,浏览器一次只能从一个给定的主机下一次下载4(或6或8)文件,因此,如果您可以将CSS组合到单个文件中,则可以表现更好。

Google说,90-95%的页面加载时间发生在客户端: YouTube

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top