我正在尝试优化我的网站。我有一些插件(包含CSS的jquery插件)和我自己的javascript代码。
现在我将CSS放在不同插件的单独文件中,就像我下载它们一样。并且如果我在实际页面上需要一个,我生成代码以包含它。与JS文件相同。但是当涉及渲染一个包含大量内容的复杂页面时,可以调用9个CSS文件和7个或8个JS文件,每个文件都是HTTP请求。
我应该将CSS放入一个大文件中以减少包含的CSS文件的数量吗?但是,即使当前页面不需要那么多东西,浏览器也会解释所有内容。
我想到了第三种方法:使用PHP生成CSS和JS文件。然后它将始终是一个JS和一个CSS文件,并且只有所需的东西。或者这是一种荒谬的方式?
您怎么说,哪个用于减少页面加载时间?
答案 0 :(得分:2)
最好将所有CSS包含在文件中,将所有JS包含在文件中,并使用许多缩小和压缩CSS和Javascript的在线服务来缩小它们。这将减少http请求的数量以及要下载的数据量。
如果你使用php生成CSS,那么每个页面都应该下载CSS和JS并生成它们需要一些时间,但是如果你将它们打包在一个文件中,它会下载一次并且浏览器会缓存它。
如果您的网站有许多不同的部分并且将文件中的所有css打包成一个巨大的文件,那么您可以将CSS打包成两个或三个文件,并在每个部分中加载相关的文件。
减少http请求的数量非常重要。
答案 1 :(得分:0)
我认为你最后的解决方案是最好的解决方案。
从php生成一个js文件和一个css文件,不要忘记最小化/ gziped它们:)
这是一篇关于优化的非常好的文章:http://developer.yahoo.com/performance/rules.html
答案 2 :(得分:0)
这在很大程度上取决于用户如何使用您的网页。如果大多数用户只是查看一个页面,那么只向他们发送他们需要显示该页面的内容(将所有内容组合成尽可能少的请求)是有意义的。另一方面,如果大多数用户查看多个页面,那么发送它们比他们需要的更多是有意义的,因此他们已经在下一页面视图中拥有CSS& JS。但在这种情况下,您必须确保始终使用相同的URI生成相同的CSS和JS,以便浏览器不会以不同的名称重新下载相同的内容。您还必须设置正确的HTTP缓存。
我通常做的是将JS / CSS拆分为两部分。每个页面都有一个“common.css”和“common.js”,它有每个页面需要的东西(CSS的页眉/页脚/ ...样式,然后是JS的jquery / common js / ...)。然后每个子页面都有自己的JS& CSS,它只包含该页面所需的内容(如果需要)。
答案 3 :(得分:0)
对我而言,最好的方法是在中间的某个地方 - 对于CSS文件,你最好抓住它们,加入并压缩到一个文件。对于JS代码 - 例如制作3个以上的文件:一个是压缩和连接的外部库,一个是常见的东西,也可能是每个较大部分的下一个文件 - 但我认为不需要它。在用户登录之前和用户登录之后,可能需要将部分JS代码拆分。
请记住缩小并考虑异步加载(例如LAB.js)。
哦,这个PHP脚本......我不认为这是个好主意 - 更好地使用/编写一些脚本,在编译(或部署,甚至手工运行)时加入和缩小你的静态,所以没有必要一遍又一遍地生成所有东西。