JavaScript构建选项/工具

时间:2009-05-16 13:44:32

标签: javascript redirect build compression http-status-code-301

这些天我发现自己正在向客户端转移越来越多的工作,因此我的JS文件往往变得越来越大。我已经到了大多数HTML页面在标题中有六个或更多JS导入的地步,我意识到这会损害加载时间。

我最近发现了这个script,它允许您使用一个HTTP请求下载多个JS文件。它是用PHP编写的,并且是Django粉丝,我打算用Python重写它。我打算使用HTTP重定向到预先缩小和连接的文件,并想知道301的成本是多少。如果这是一个愚蠢的想法,请告诉我。

另一方面,我很担心将脚本逻辑引入到静态文件的服务中,我想知道是否有一个可行的构建替代方案,例如,一个连接和缩小JS文件并替换多个JS下载的ant任务在一个带有一个大的HTML标题中,就像脚本一样。

2 个答案:

答案 0 :(得分:4)

对于PHP,我当然赞成动态地执行它,因为如果你引入构建步骤,那么你将失去使用PHP的一个主要好处。事实上,冒着自我晋升的风险,我已就这个问题撰写了Supercharging Javascript in PHP

当然,其他技术可能会有所不同。

同样它是PHP,但它不仅仅是一块代码供您使用(尽管如果您只想要一些完全正常的代码,您可以直接跳到Part 6)并且在识别方面可能对您有价值问题和做事是正确的,为什么你这样做。

我赞成拥有一堆Javascript文件(可能只有一个用于整个应用程序)然后每个页面只是通过标准方式激活它所需的行为,但所有代码主体都在更大的缓存和缩小的JS文件中。它以这种方式运行得最快,是一种很好的方式。

如果您确实希望它作为构建过程的一部分,如果您还有构建过程,这是一个合理的解决方案,那么我建议您缩小代码。有很多工具可以做到这一点。看看YUI Compressor

如果您对JS文件进行静态组合,则上面提到的其他内容(如gzipping和相关问题)仍然相关。

答案 1 :(得分:0)

YUI压缩机是一个不错的选择。如果您想了解如何设置基于Ant的构建过程,请查看本教程:http://www.javascriptr.com/2009/07/21/setting-up-a-javascript-build-process/

作为基于Ruby的替代方案,我建议Sprockets