你如何缩小和/或压缩php文件中的JavaScript?

时间:2011-09-27 17:29:08

标签: php javascript compression minify optimization

我正在研究优化选项,在检查了SO问题之后,我看不到我想要做什么的答案。希望这并不表示我正在做的是一个不好的做法!

我有一个内部网应用程序,通过对php文件的ajax调用来加载页面内容。很多php文件混合了php,JavaScript,甚至是一些HTML,特定于它们加载到主界面的接口功能。我想知道缩小或压缩这些文件。有没有办法做到这一点,还是因为我有混合语言而被卡住了?

更新:关于已接受的答案:

我接受了狂野的答案,因为我认为它最接近我原来的问题。然而,这是我希望我能接受两个答案的那一次,因为我认为Igor Zinov'yev提供的答案给了我一个更重要的设计决定。出于这个原因,我给他的回答+1,因为我想其他人也会。希望这是有道理的,并且符合SO规则。

2 个答案:

答案 0 :(得分:4)

您的PHP脚本生成Javascript代码,因此它可以在输出之前缩小代码:在变量中生成代码,然后将该变量传递给minifier,然后输出到浏览器。

这是PHP library for that

答案 1 :(得分:2)

您正在从错误的一端开始优化。显然,如果你有PHP编码的HTML,HTML和其他任何内容的硬编码,你真的需要重构代码。但即使你不这样做,你也不应该将代码缩小到位,因为它更难维护。

把它从那里拉出来,从小步骤开始,你最终会到达那里。

更新:我想回复评论,但我决定详细说明为什么我这样回答你的问题。

我在这里谈论separation of concerns。您的服务器端代码文件不适用于客户端代码。到目前为止,我所见到的所有这些解决方案迟早会变成难以维护的混乱。

如果要返回一段HTML代码,请将其放入模板中,并为模板提供特定于当前情况的变量。您可以使用Smarty执行此操作。通过这种方式,您可以获得以下好处:

  • 一遍又一遍地重复标记 - 有
  • 的模板循环
  • 可以在多个地方重复使用现有模板
  • 使用模板的开发人员无需进入服务器端代码
  • 你的服务器端代码变得更干净,闻起来也很好!

稍后当您将逻辑与演示文稿分开时,您可能会发现不需要使用HTML代码段发送JavaScript代码。也许您将创建一个单独的JS引擎(您将在构建时缩小)并且只需在加载时触发某些事件。