1

很多时候在互联网上阅读有关 Web 开发的信息时,我听说您应该将 javascript 和 css 文件拆分为多个文件。
就像将您的 css 文件拆分为:

  • 清除.css
  • base.css
  • page_specific.css

或者您甚至应该将它们拆分为包含定位、颜色和排版信息的文件。

但是浏览器不是只能同时发出两个http请求吗?将文件拆分成这么多文件会产生大量的 http 请求。将它们分成两个文件,一个特定于页面的文件和一个基本/清除 css 文件不是更好吗?然后将它们与大量缓存头一起发送?

我知道拆分文件更容易开发,但速度不应该更重要吗?

4

7 回答 7

8

过早的优化是万恶之源。首先使您的代码易于编写和维护。如果稍后您发现文件数量是一个瓶颈,您可以在构建过程中添加一个步骤,将它们组合成一个文件。此步骤还可以删除注释和空格。

于 2008-12-20T11:34:27.253 回答
3

我根据理智维护的需要适度拆分它们;HTTP 1.1 每个连接的多个请求、流水线和缓存对于减轻拥有多个文件的开销大有帮助。也就是说,我不想拥有数百个小虫子。但是,3-7 个 CSS 文件,当然。并且绝对将 JS 和 CSS 从 HTML 中分离出来。

于 2008-12-20T11:34:14.490 回答
3

这是整个过早优化的事情。

我认为最好以对您最有意义的方式组织您的代码,然后找到一个工具来组合文件以供您在网站上线时使用。有许多脚本可以为您执行此操作。

每页有大量文件肯定会影响性能。

IE7-每台服务器支持两个并发 HTTP 连接,IE8将其增加到 6 个

我想像HTTP 1.1 所支持的pipelining可以缓解连接限制问题,但它在 FF 和 IE 中默认禁用,Opera 已启用它。

MS Ajax 控件工具包实际上具有与 ToolkitScriptManager 控件相结合的内置脚本。

一篇很好的 MSDN 文章,一个用于 ASP.NET 的工具,以及另一个

于 2008-12-20T11:35:05.363 回答
2

为什么不能两全其美?

我对我的项目所做的是将多个 CSS 和 JS 文件保存在一个src目录中,然后有一个脚本将它们组合在一起并将每个文件压缩(打包)到“myproject.pack.js”或“myproject.pack.css”文件中. 在我的 IDE中创建运行此脚本的快捷方式使这完全无痛,并为您提供大量注释和逻辑分离的 JS 和 CSS 文件的好处,以及单个 HTTP 请求和最小化代码的好处。

于 2008-12-20T11:46:48.443 回答
1

我认为最好制作单独的文件 - 这是更“可支持”的方法。

但在生产中,您可以使用某种解决方案将 CSS(或 JS)文件合并到一个文件中:

自动将 Javascript 和 CSS 加入到单个文件中

于 2008-12-20T11:29:26.543 回答
1

天,

我将建议您查看 Steve Souders 在 Yahoo 开发的规则,并可能安装相关的 YSlow 插件,但是...

谷歌搜索 YSlow 让我看到了 Jeff Attwood 在他的 Coding Horror 网站上发表的一篇有趣的文章,该文章是关于根据 Jeff 所说的事实来定制 YSlow 建议的

... 雅虎的问题不一定是你的问题。

这篇文章为您提出的问题提供了很多有用的信息,并且提供的不仅仅是死记硬背的“只需使用 YSlow 插件并遵循建议”的建议。

绝对是一个增值。谢谢杰夫。

干杯,

于 2008-12-20T12:47:28.103 回答
-1

这是我的两分钱:如果您有 100 个 JS/CSS 文件,每个文件重 1MB,这并不重要。它只会减慢您页面的第一次打开速度。之后,它们将被缓存在客户端上,一切都会好起来的。所以一定要追求可维护性和逻辑分离。

于 2008-12-20T12:57:06.243 回答