服务php为css/js:它足够快吗?有什么缺点?

Wes*_*rch 10 javascript css php optimization performance

我最近开始进入优化客户端的性能和加载时间,压缩css/js,gzipping,关注YSlow等领域.

我想知道,在尝试实现所有这些微优化的同时,将php文件作为css或javascript提供服务的优缺点是什么?

我不完全确定瓶颈在哪里,如果有的话.我认为在相同的CSS和php文件之间,"纯"的css文件会稍微快一点,因为它不需要解析php代码.但是,在php文件中,您可以更好地控制标题,这可能更重要(?).

目前我正在filemtime()检查一个"触发器"文件,并且有一些php voodoo从中编写单个压缩css文件,并与定义组中的其他几个文件组合.这将创建一个类似的文件css/groupname/301469778.css,php模板捕获并使用新文件名更新html标记.它似乎是最安全的方法,但我不喜欢服务器缓存在几次编辑后被垃圾css文件填满.对于仅为某些页面加载的小"帮助"css文件,我也不打算这样做.

  • 如果99%的输出是由php生成的,那么使用php直接输出css/js内容有什么害处(如果有的话)?(假设没有php错误)
  • 如果使用php,mod_rewrite对于浏览器误解的任何边缘情况,使用css/js扩展名的文件是否是个好主意?不能受伤?不需要?
  • css和javascript是否有单独的指南/方法?我认为他们是平等的.
  • 哪个更快:一个单独的css文件有几个@imports,或一个带有多个readfile()调用的php文件?
  • 使用php有什么其他方法影响速度?
  • 一旦文件缓存在浏览器中,它是否会有所作为?

我更喜欢使用PHP与.htaccess,因为它更简单,但最后我将使用最好的方法.

Udo*_*o G 4

好的,这是您的直接答案:

  • 只要你的代码没问题就没有什么坏处。浏览器不会注意到任何差异。
  • 不需要 mod_rewrite。浏览器通常不关心 URL(甚至通常不关心 MIME 类型)。
  • CSS 文件通常较小,通常一个文件就足够了,因此无需合并。请注意,组合来自不同目录的文件会影响 CSS 中引用的图像,因为它们仍然相对于 CSS URL
  • readfile() 肯定会更快,因为 @import 需要多个 HTTP 请求,并且您希望尽可能减少
  • 比较单个 HTTP 请求时,PHP 可能会稍微慢一些。但是除非您离线进行,否则您将失去合并文件的可能性。
  • 不可以,但浏览器缓存不可靠,并且不正确的 Web 服务器配置可能会导致浏览器不必要地重新获取 URL。

不可能给您更具体的答案,因为这在很大程度上取决于的项目细节。