2009-04-29 46 views
2

重复:Multiple javascript/css files: best practices?包括CSS文件和Javascript文件加载 - 我该如何优化

家伙嗨,我的应用程序几乎完成,但事情是,我发现我在内的很多外部JavaScript文件和CSS。我在这里使用了很多第三方免费插件,并且不想触摸代码,因为害怕搞砸东西。

但结果是,我发现我现在已经包括8个外部CSS文件以及高达20个外部Javascript文件:o - 我不记得有看到任何重大的网站包括超过2或3 css_ JS文件合并,所以我绝对必须在这里做错事。我怎么解决这个问题 - 我读了一个地方,一个大的js文件加载速度比2或3个文件大一半的累积大小。

任何帮助,将不胜感激

回答

2

一个大文件比一堆小文件要好,因为在这种情况下,Web浏览器向Web服务器发出一个请求,而不是8个请求。更重要的不是总规模的细微差异,而是请求总数的latency。想象两种情况:你下载一个8 kB的文件和8个每个1KB的文件。

  1. 在第一场景中的总时间是不便像80毫秒(传输时间)+ 50毫秒(等待时间)= 130毫秒

  2. 在第二种情形中你有不便等的8x10毫秒(传送时间) +8x50毫秒(!)等待时间= 480毫秒(!)

您看到区别。这绝不是一个全面的例子,但你明白了。

因此,如果可能的话,将文件合并在一起。压缩内容以减少要传输的数据量。并使用缓存来摆脱重复请求。

+0

如果我将JavaScript文件合并在一起,是否存在导致任何类型冲突的风险?还是只是一个拷贝一个接一个地拷贝文件内容的问题? – Ali 2009-04-29 12:26:20

0
+1

尽管这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。看看这篇文章:[我如何写一个很好的答案](http://stackoverflow.com/help/how-to-answer)。 – ByteHamster 2016-03-09 14:19:55

0

在过去的项目中,我用SmartOptimizer压缩JS和在飞行中的CSS文件。这是一个基于PHP的文件缩小器。

通过使用即时缩放功能,您不必保持单独的源文件和缩小文件。当然,需要一点处理能力来保持文件的缩小。此外,加载一个缩小的文件具有以下优点更好:

  1. 较小的文件大小(肯定)
  2. 的成分,不并行下载延迟,因为更少的脚本/样式表。
+0

听起来不错,但你的链接似乎被打破。 – BrynJ 2009-04-29 09:58:55

1

如果您将CSS文件按照它们当前加载到页面的顺序组合成一个文件(并且与JS相同),那么它们将与以前完全相同;当你开始改变规则可以意外覆盖他们以前不习惯的顺序时。

1

无论如何,你的大部分文件都应该放在客户端缓存中,所以我不会太担心它。只要确保你设置了正确的标题。当然,如果这是你网站的首页,那么是的,你可能应该进一步优化。