【发布时间】:2011-05-22 03:20:31
【问题描述】:
我有一个使用大量 jquery/javascript 的网站。现在,在索引页面上,我的头部包含大约 10 个 javascript 文件:
<head>
<script src="/js/jquery.js"></script>
<script src="/js/jquery_plugin_1.js"></script>
<script src="/js/jquery_plugin_2.js"></script>
<script src="/js/jquery_plugin_3.js"></script>
<script src="/js/my_scripts_1.js"></script>
<script src="/js/my_scripts_2.js"></script>
<script src="/js/my_scripts_3.js"></script>
<script src="/js/my_scripts_4.js"></script>
<!-- ...and so on -->
</head>
由于访问者人数越来越多,我开始考虑所有这些的性能。我已经读过,缩小所有 javascript 文件并将它们集中在一起是个好主意,因此浏览器必须只发出一个 HTTP 请求。我这样做了。现在我有 everything.js 文件,其中包含所有 javascript,包括 jquery、插件和我的自定义脚本。
<head>
<!--
<script src="/js/jquery.js"></script>
<script src="/js/jquery_plugin_1.js"></script>
<script src="/js/jquery_plugin_2.js"></script>
<script src="/js/jquery_plugin_3.js"></script>
<script src="/js/my_scripts_1.js"></script>
<script src="/js/my_scripts_2.js"></script>
<script src="/js/my_scripts_3.js"></script>
<script src="/js/my_scripts_4.js"></script>
...
-->
<script src="/js/everything.js"></script>
</head>
当我需要更改其中一个文件时,乐趣就开始了。每次,为了检查我的更改是否按预期工作,我需要压缩文件并更新everything.js 或取消注释所有旧代码。使用这种工作流程,很容易忘记一些事情并犯错误。
问题:有没有自动化的东西可以解决这个问题?一些东西,可以让我像以前一样编辑我的单独文件,并在我准备好测试我的更改时缩小和整合所有内容?
我正在使用 PHP5 和 SVN
解决方案
谢谢大家的帮助,我找到了我的解决方案:
我将在我的 SVN 存储库中放置一个 post-commit 挂钩,它将获取我所有的 .js 文件,将它们放在一起并使用 YUI 压缩器缩小它们。然后,在我的脚本中,我将分叉 javascript 包含,以便在开发环境中该站点将包含单独的 javascript 文件,但在生产中将包含组合和缩小的文件。
【问题讨论】:
-
你可以编写一个shell脚本来为你做这件事,收集特定目录中的所有
.js文件,然后组合并压缩结果。 -
我认为你应该检查你的脚本在一个文件中是否正常工作。
标签: php javascript performance minify