很多时候,在网上阅读关于网络开发的内容时,我听说你应该将你的javascript和css文件分成多个文件。
就像把你的css文件分成一个:
或者您甚至应该将它们分成包含定位,颜色和排版信息的文件。
但是,浏览器只允许同时发出两个http请求是不是真的?将文件拆分为多个文件会产生一大堆http请求。将它们分成两个文件,特定于页面和基本/清除css文件不是更好吗?然后向他们发送大量的缓存标头?
据我所知,拆分文件更容易开发,但速度不应该更重要吗?
答案 0 :(得分:8)
过早优化是万恶之源。首先使您的代码易于编写和维护。如果稍后您发现文件数量是瓶颈,则可以在构建过程中添加一个步骤,将它们组合到一个文件中。此步骤还可以删除注释和空格。
答案 1 :(得分:3)
我根据需要适度地将它们分开以进行理智的维护; HTTP 1.1每个连接,流水线和缓存的多个请求大大减轻了拥有多个文件的负担。也就是说,我不想拥有数百个小虫子。但是,3-7个CSS文件,当然。并且绝对将JS和CSS从HTML中分离出来。
答案 2 :(得分:3)
这是整个过早优化的事情。
我认为最好以对您最有意义的方式组织代码,然后找到一个工具,在您将网站置于实际状态时合并这些文件。有很多脚本会为你做这件事。
每页拥有大量文件肯定会破坏性能。
IE7-每个服务器支持两个并发HTTP连接,IE8 increases this to 6。
我认为,{1.1}支持的pipelining可以缓解连接限制问题,但是在FF和IE中默认禁用它,Opera已启用它。
MS Ajax Control Toolkit实际上有与ToolkitScriptManager控件结合的内置脚本。
答案 3 :(得分:2)
为什么不能兼顾两全其美?
我对我的项目做的是将多个CSS和JS文件保存在src
目录中,然后有一个脚本将它们组合在一起并将每个文件压缩(打包)成“myproject.pack.js”或“myproject.pack.css”文件。创建一个在my IDE中运行此脚本的快捷方式,这使得它完全无痛,并且具有大量注释和逻辑上分离的JS和CSS文件的好处,并结合单个HTTP请求和最小化代码的优势。
答案 4 :(得分:1)
我认为制作单独的文件会更好 - 这是更“可支持”的方法。
但是在制作中你可以使用某种解决方案将CSS(或JS)文件加入一个文件中:
答案 5 :(得分:1)
天儿真好,
我打算建议看一下Steve Souders在Yahoo开发的规则,并且可能会安装相关的YSlow插件但是......
谷歌搜索YSlow让我在他的编码恐怖网站上由杰夫阿特伍德an interesting article引导我根据杰夫提出的事实来定制YSlow建议
...雅虎的问题不一定是你的问题。
本文充满了您提出的问题的有用信息,并且提供的不仅仅是“仅使用YSlow插件并遵循建议”的建议。
绝对是一个增值。谢谢杰夫。
欢呼声,
罗布
答案 6 :(得分:-1)
这是我的两分钱:如果你有100个JS / CSS文件,每个重1MB,这没关系。它只会减慢页面的第一次打开速度。之后,他们将被缓存在客户端上,一切都会好的。所以肯定是为了可维护性和逻辑分离。