8

这个概念对我来说是一个新概念——我第一次遇到它是在YUI 依赖项配置器中。基本上,不是对多个文件进行多个请求,而是将文件链接到一个 http 请求中以减少页面加载时间。

有人知道如何在 LAMP 堆栈上实现这一点吗?(我看到已经问过一个类似的问题,但它似乎是 ASP 特定的。

谢谢!

更新:这两个答案都很有帮助......(我的代表还不够高,无法发表评论,所以我在这里添加一些离别想法)。我还看到了另一篇博客文章,其中包含可能有用的特定于 PHP 的示例。不过,大卫的构建答案让我考虑采用不同的方法。谢谢,大卫!

4

4 回答 4

9

有多种方法,最明显的两种是:

  1. 构建一个像 YUI 这样的工具,它会根据您根据需要勾选的组件构建一个定制的、独特的版本,这样您仍然可以将文件作为静态文件提供。MooTools 和 jQuery UI 在你下载他们的包时都提供了这样的包构建器,为你提供最精简和最有效的库。我确信那里存在通用的通用工具。
  2. 创建一个简单的 Perl/PHP/Python/Ruby 脚本,根据请求提供一堆 JavaScript 文件。因此,“onerequest.js?load=ui&load=effects”将转到一个 PHP 脚本,该脚本加载文件并为它们提供正确的内容类型。有很多这样的例子,但我个人不是粉丝。

我不喜欢通过任何类型的脚本来提供静态文件,但我也喜欢用大约 10 个单独的小类文件来开发我的代码,而不需要 10 个 HTTP 请求的成本。所以我想出了一个自定义构建过程,它结合了所有最常见的类和函数,然后将它们缩小到像 project.min.js 这样的单个文件中,并且在我的所有视图/模板中都有一个条件,包括生产中的这个文件。

编辑——“自定义构建过程”实际上是一个极其简单的 perl 脚本。它读入我作为参数传递的每个文件,并将它们写入一个新文件,可选地通过JSMIN自动传递整个文件(可用于所有您喜欢的语言)。

在命令看起来像这样:

perl build-project-master.pl core.js class1.js etc.js /path/to/live/js/file.js
于 2008-09-19T13:46:40.297 回答
5

@http://www.hunlock.com/blogs/Supercharged_Javascript 上有一篇很好的博客文章

于 2008-09-19T13:49:38.090 回答
2

你想要的是Minify。我刚刚写了一个设置它的演练。

于 2008-09-21T03:39:38.070 回答
0

Capistrano 是一个相当流行的基于 Ruby 的 Web 部署工具。如果您正在考虑或已经在使用它,那么有一个很棒的 gem 可以找出 CSS 和 Javascript 依赖项、合并和缩小文件。

gem install juicer

Juicer GitHub 页面,它可以找出哪些文件相互依赖并将它们合并在一起,从而减少每次页面查看的 http 请求数,从而提高性能。

于 2013-01-19T11:56:23.183 回答