为什么Facebook不结合其CSS / JS文件?

时间:2011-09-28 02:59:34

标签: javascript css performance facebook cdn

我很好奇为什么Facebook开发人员选择不将他们的脚本和样式表组合成单个文件。相反,它们是通过CDN按需加载的。

Facebook显然是一个非常复杂的应用程序,我可以理解这种模块化如何使Facebook更容易维护,但通常的优化建议是否仍然适用(特别是考虑到它的高使用率)?

或者,他们使用CDN的事实是否避免了拥有大量小脚本/样式的常见性能影响?

3 个答案:

答案 0 :(得分:5)

他们可能遇到这样的情况,即能够在不同时间(针对不同用户的不同页面或不同应用程序配置)向浏览器提供不同JS文件组合的节省代表比减少的HTTP请求更大的节省将所有文件合并为一个文件的开销。

如果浏览器在任何给定时间只执行总JS代码库的一小部分,那么这将是有意义的。因为他们有这么多不同的用户和不同应用程序的不同部分为这些用户运行不同的配置,所以可以说是这种情况。

其次,这些文件只需要下载一次,然后浏览器在更改或缓存已过期之前不会再次请求它们,因此只有第一次访问才能真正受益于一体化风格。是的,拥有和先进的CDN与世界各地的许多边缘地点肯定有帮助。

答案 1 :(得分:5)

单词BigPipe。他们将页面划分为“pagelets”,每个页面在其服务器上单独处理并并行发送到浏览器。基本上几乎所有东西(CSS,JS,图像,内容)都是延迟加载的,因此它会出现在一堆小文件中。

答案 2 :(得分:0)

也许他们认为您更有可能比清除浏览器缓存更频繁地访问Facebook。