【问题标题】:Should I combine my javascripts in one and css files in one for performance? [duplicate]我应该将我的 javascript 和 css 文件合二为一以提高性能吗? [复制]
【发布时间】:2013-06-19 08:53:07
【问题描述】:

YSlow 报告表明

我在一个特定页面上有许多 javascript 文件,这些文件应该合并为一个。 我在一个特定页面上有许多 css 文件,这些文件应该合并为一个。

Q1. 有没有人能详细说明一下将它们合并成一个有多快?

Q2.如果我需要有条件地使用不同版本的css/javascript(由于浏览器类型或版本),我应该缩小并单独使用该特定文件吗?但这将打破将所有文件放在一个文件中的规则。如果有任何机构以某种方式做到了,请在这里分享。

【问题讨论】:

标签: javascript css performance yslow


【解决方案1】:

对文件的每个请求都涉及到服务器的往返。您请求的单个文件越多,往返次数越多,页面加载速度就越慢。将尽可能多的文件合并为一个可以减少请求的数量,从而缩短页面加载时间。

这是一个很好的经验法则,但不要太拘泥于它。如果您需要为不同的目的加载不同的版本,请继续这样做,前提是您不要将代码和 CSS 拆分为太多的小片段

“太多”的构成因站点和系统而异。尝试一些组合,找到适合你的。每个系统都是不同的。

【讨论】:

  • 投反对票的人愿意发表评论吗?
  • +1:赞成反对反对票。我真的很想知道为什么这被否决...
【解决方案2】:

你不可能拥有一切。

老实说,考虑到它们是缓存的,这没什么大不了的。

回答你的问题,

Q1. Could any body elaborate on this how would it be fast to merge them in one?

它将发出一个请求而不是多个请求,从而使第一页加载速度更快。

Q2. In cases where I need conditionally different version of css/javascript (because of browser type or version) should I minify and use that particular file separately? but that will break the rule of putting all files in a single one. If any body has done it in a way could you please share it here.

去做吧。你必须这样做。

【讨论】:

  • 感谢您的意见。
【解决方案3】:

对于这种情况,我在我的 PHP 框架中构建了一个压缩器来处理请求。 Css 或 JS。我只需要包含每个文件,它会根据 HTTP Header 组合和缓存。

【讨论】:

  • 您只回答了问题 1,在 php 中也没有为 Php 标记问题,javascript 也可以在使用任何其他语言的任何网站中使用。还请添加上述框架的链接,以便它也可以帮助其他人。
【解决方案4】:

在 JavaScript 部分

恕我直言,您不能将所有这些结合起来并最小化,因为它不会始终为您提供最佳性能。诀窍是对您拥有的 JavaScript 文件进行分组和最小化。例如,假设您在页面中加载了这些 js 文件

  1. 一个(或多个)JavaScript 库
  2. 一些通过 AJAX 将内容拉到您的页面的 JavaScript 文件
  3. 插件/花哨的动画/独角兽让您的网站看起来很酷
  4. 一些分析/广告的 js 文件

如果您将所有这些最小化到一个庞大的 JavaScript 文件中,那么性能不会有任何改进。相反,这将是一次可怕的经历。

相反,如果您按以下顺序加载它们,则会提供更好的用户体验。

  1. 从 CDN 加载 JavaScript 库(如果你使用没有 CDN 的库,那就大错特错了)
  2. 合并提供有用内容的文件,然后加载它们
  3. 合并您的文件,让网站变得超级性感
  4. 最后加载必要的邪恶(我更喜欢在结束体标签上方的地方)

即使您有条件 JavaScript 文件也不要太担心。几乎所有领先的编程语言都有动态执行此操作的机制。


关于 CSS 部分

我不是 CSS 方面的专家,所以我不能详细说明。如果你想优化它们,你真的应该使用一些 CSS 预处理器,比如Sass or LESS or Stylus or something like that

我不是 CSS 专家

【讨论】:

  • CSS 每个处理器生成的 CSS 比需要的多,它不是减少文件大小或获得更快 CSS 的工具。
  • @Mark:我的观点是,如果他必须根据用户偏好更改样式表,那么他可以使用可变方法。
  • 不,我没有被否决!!确实很棒
猜你喜欢
  • 2015-10-24
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2016-12-02
  • 2012-10-20
  • 2013-03-02
  • 2012-07-24
  • 1970-01-01
相关资源
最近更新 更多