你的帖子让我感兴趣,所以我玩了 mod_pagespeed,我没有做任何详细的测试或测量。我的总体印象是冷漠,好处可以忽略不计甚至无法察觉。 Magento 的最大障碍始终是并且仍然是它的大量 PHP 类需要很长时间才能加载和实例化。 Magento 并没有真正犯下像内联 CSS 这样的不良做法,所以这个 mod 没有什么空间可以做。抛开这些警告不谈,这是我的经验。
首先,Google 已经很好地打包了 mod_pagespeed,他们提供了源代码和二进制文件,但二进制文件安装程序会注册存储库,因此它会保持更新。我希望更多的制作人理所当然地这样做。最合理的设置是默认设置,因此无需任何调整即可立即运行。
Filters
配置被分为一个适度的列表filters http://code.google.com/speed/page-speed/docs/filters.html您应该仔细阅读以了解究竟进行了哪些改进。我只选择启用两个 - “remove_comments”和“collapse_whitespace” - 这在 HTML 大小方面产生了显着差异,并且没有破坏任何内容。
extend_cache
- 默认情况下打开。我喜欢它的概念,并认为这是维护文件版本的绝佳方法。有用。
outline_css
& outline_javascript
- 默认情况下打开。不太相关。无害。
combine_css
& rewrite_css
- 本质上与 Magento 的内置功能相同,也有几个扩展,包括始终受欢迎的福曼·斯皮斯特 http://www.magentocommerce.com/extension/457/fooman-speedster。您可能认为这使它变得多余,但我喜欢它,因为它将 PHP 执行卸载到本机代码,由于块缓存,差异可能很小,但对我来说已经足够了。有用。
inline_css
& inline_javascript
- 补充outline_css
& outline_javascript
并默认开启。确实增加了我没有预料到的页面大小。据说是为了减少请求数量,但是如果合并 css/js 文件怎么办?我希望这只是从可缓存源中删除内容。不想要的。
collapse_whitespace
& remove_comments
- 默认关闭,但值得打开。即使在压缩之后,传输的字节也会产生可测量的差异。有用。
combine_heads
- 修复了在这种情况下可能永远不会出现的问题。无害。
elide_atttributes
- 我没有发现任何问题,但只有时间会证明一切,目前我假设它是无害的。有用。
rewrite_javascript
- 这基本上是“jsmin”,谷歌自己的评论警告它有风险。由于 Magento 附带的 js minifier 还处于测试阶段,并且过去曾给我带来过问题,所以我考虑了这个明智的建议,并没有理睬它。不想要的。
rewrite_images
- 我会长话短说。有用。
insert_img_dimensions
- 其他的东西 Magento 并没有真正的问题,所以并不需要修复。但它是无害的,并且可能有助于页面呈现得更流畅。有用。
ModPagespeedImgInlineMaxBytes
- 将小图像转换为 data:uri 内容。我不相信这一点,因为有一个棘手的 UA 版本检查,并且您无法确定超出您控制范围的代理不会服务于错误的浏览器。谷歌似乎认为这是“低到中等”的风险,但我不会给它这样的机会。不想要的。
remove_quotes
- 破坏 w3c 验证以获得几个字节。理论上它应该是无害的,但我不相信它。不想要的。
move_css_to_head
& add_head
- 可能会扰乱一些 javascript,但 Magento 比这更强大,而且 Magento 通常不会犯像这样需要纠正的小学生错误。无害。
结论
各种重写、重新排序和修复都会阻碍开发。浏览器报告的行号不一定与源代码中的行号相同。因此,除了生产服务器之外,我永远不会将它用于任何其他用途。
对于像 Magento 这样的 PHP 驱动的应用程序来说,好处实在是太小了。我们中有多少人会管理每天有数百万访问者的服务器以节省成本?我知道通过老式编程我可以节省更多。块缓存和整页缓存的效果最好。
尽管如此,任何改进都是受欢迎的,这就是为什么我将来会考虑它。托管在同一服务器上的任何其他站点都将以自己的方式受益。
确切的配置将根据具体情况进行判断,但通常我认为我会执行以下操作:
-
在 mods-available/pagespeed.conf 中:
ModPagespeedDisableFilters inline_css、inline_javascript、rewrite_javascript、remove_quotes
ModPagespeedEnableFilterscollapse_whitespace,remove_comments
-
安装 Fooman Speedster 以正确组合 javascript。
-
警告客户/账单付款人该模组的测试性质。