很明显,我可以自己做一些有限的测试,但我希望听到一些人在至少中等规模的网站上有实际经验。
每个“前10”列表中用于优化站点/带宽的两个项目是:
-
将尽可能多的JS和CSS合并到一个文件中(以减少往返);以及
-
使用内容交付网络(以节省带宽/加快下载速度)。
现在,你可以在谷歌或微软的cdn(或两者)上找到几乎所有重要的脚本。您甚至可以找到一些相当重的项目,如jquery themeroller包。与AmazonS3这样的私人cdn帐户相比,使用这些cdn的一个主要优势是,许多访问者已经从其他网站缓存了这些脚本。即使他们没有,也很难打败像谷歌这样的网站。
因此,假设我想使用这些公开的cdn,而不是为个人cdn帐户支付额外的费用,以获得更好、更差或相同的性能。另外,假设我使用的是一组JS/CSS文件,它们都在这些公共cdn上:jquery、jquery ui、一个主题、jquery工具,也许还有其他一些。除了这些之外,我可能还使用了一些在公共cdn上不可用的脚本,比如supervish和jquery.approach和hoverintent。真的很普通。我似乎有两个互斥的选择:
-
有关上面列出的脚本,请参阅公共cdn。优点是我可以使用其他人的带宽,并利用其中一些脚本的流行性。缺点是客户机必须对所有这些文件进行不少于7次的往返(4个单独的JS、1个CSS和1个用于合并/缩小本地内容的CSS和JS)。或者…
-
把所有东西塞进两个单一的小型文件(一个用于JS,一个用于CSS),然后在我自己的Web服务器上为所有东西服务。优点是只有两次往返(至少节省66%的费用)。当然,缺点是现在我必须
许多的
我自己做的更多。
这似乎是一个艰难的选择,我认为真正理解哪一个更有效(“更好”是客户加载时间和总体用户体验的函数)的唯一方法是将它放在野外,看看会发生什么。
所以以前有人必须做出这样的选择吗?如果有,你选择了什么?为什么?结果如何?或者,如果有人试图在一个孤立的环境中处理测试的任务,那么您是如何进行的,结果是什么?
另一方面,这些都是描述一个“Web应用”类型的站点——换句话说,不是很重的媒体,但可能包含大量的样式和脚本,这些样式和脚本实际上占了页面大小的很大一部分。因此,我认为这不仅仅是一个智力练习。