【发布时间】:2010-09-23 22:27:02
【问题描述】:
我有一个包含大量引用的 .js 文件的站点;这些是相当小的文件,但我想让我的方法按主题/功能分开。
将所有方法保存在一个 .js 文件中更好,还是有许多(~20 - 30)个小文件都只包含一些行没有问题?
【问题讨论】:
标签: javascript jquery performance include jscompress
我有一个包含大量引用的 .js 文件的站点;这些是相当小的文件,但我想让我的方法按主题/功能分开。
将所有方法保存在一个 .js 文件中更好,还是有许多(~20 - 30)个小文件都只包含一些行没有问题?
【问题讨论】:
标签: javascript jquery performance include jscompress
无论如何都要将它们分开用于开发,但您应该考虑将它们捆绑到一个文件中以用于生产。
sitepoint.com 有一个很好的讨论
对于每个文件,一个 HTTP 请求被发送到服务器,并且 然后浏览器等待响应 在请求下一个文件之前。 浏览器的限制(或限制) 通常防止并行下载。 这意味着对于每个文件,您 等待请求到达 server,要处理的服务器 请求和答复(包括 文件内容本身)来联系您。放 端到端,其中一些可以使 页面加载时间差异很大。
【讨论】:
实际上,有这么多引用文件是个坏主意。性能问题的基本思路是尽量减少 HTTP 请求(至少在您的生产服务器上)。看看这个http://developer.yahoo.com/performance/rules.html#num_http
【讨论】:
有没有人有一个聪明的 nant 脚本可以为你做到这一点?我编写了一个自定义的 nant 任务,它使用 YUI 压缩器来缩小我的 css 和 js,但是添加组合会很有用。大家是怎么处理的呢?
【讨论】:
我不知道你在服务器端使用什么框架(如果有的话),但是 Ruby on Rails 有一个脚本包含函数,它可以根据设置(例如测试或生产)创建大量脚本标签(通常是测试模式)或创建一个标签,将所有脚本连接成一个(可选地用一些插件压缩)文件。我相信许多其他框架也支持这样的东西。
更新:我只记得: 您也可以手动压缩(通过去除空格和 cmets、缩短变量名等)并将 javascript 文件和 CSS 文件与 Yahoo! UI Library: YUI Compressor 结合起来。在压缩之前确保你的 JavaScript 是正确的,试试JSLint。
【讨论】: