来自CDN(Google)的流式jquery(JS文件)

时间:2008-11-24 04:28:48

标签: javascript jquery performance http

这是一个不做功课的案例。:-)

除了动态加载优势之外,当我可以从我的服务器加载一个包含19kb jQuery zip文件+附加文件的单个文件时,从Google服务器包含一个JavaScript库(在我的情况下是jQuery)是否有意义?我编写的JavaScript代码 - 全部使用JS压缩器压缩并提供HTTP放弃。

使用Google服务器,我将进行2次(并行)HTTP往返。一个用于获取jquery文件,另一个用于获取站点JavaScript代码。一个19kb,另一个说20-25kb。 在正常情况下,我的网站将下载30-35kb。

5 个答案:

答案 0 :(得分:10)

考虑从google CDN下载的jQuery脚本可能已经缓存在访问者的浏览器上,因为它具有一致的标头和缓存控制,无论从哪里下载。因此,平均而言,大多数用户只需下载特定于站点的JavaScript脚本。此外,CDN通常比单个服务器具有更快的响应时间,因为它们从离您所在位置最近的服务器做出响应。

对于您的问题,没有任何简洁和干燥的答案,因为这两种方法都能在现代连接上提供良好的性能。您应该在胁迫下对系统进行分析,看看哪种解决方案能够提供最佳结果(如果需要进行此类优化)。

答案 1 :(得分:1)

您确定要并行下载脚本吗? This example from Cuzillion似乎在说只有IE8可以做到这一点。

另外值得一提的是,您的网页浏览量中有多少是第一次访问者以及之前有多少访问过该网站,以帮助您确定缓存会影响下载时间。如果您有大量的首次访问者,可能值得倾斜,以便尽快获得第一次体验。

答案 2 :(得分:1)

httpwatch对来自谷歌的js文件进行的基准测试。

http://blog.httpwatch.com/2008/11/27/google-adds-https-support-to-the-ajax-libraries-api/

答案 3 :(得分:0)

这是一个真正的问题吗?只需确保HTTP标头中的Cache-Control已正确配置,最终用户的客户端只会将其拉出一次。这是一个绝对微不足道的数据。

答案 4 :(得分:0)

在我看来,使用着名的jQuery CDN(例如谷歌)并没有任何明显的缺点,并且有一些潜在的好处,所以我个人的偏好是采取CDN方法。如果不出意外的话,那就是我不必担心和维护源文件的一部分。

我看到使用CDN与单个胖JavaScript存档有几个优点:

  • 减少检索未缓存资源的延迟,因为这些资产是从边缘位置提供的
  • 对于第三方脚本,用户的浏览器可能已经将其缓存,无需再次为您的网站下载。
  • 通过在多个主机名之间分配资产来解决并行请求的每个主机浏览器限制(当然,这也可以通过您自己的服务器使用简单的子域技巧完成)。
  • 降低主服务器的总体负载,尤其是在高峰使用期或YC / Slashdot“攻击”期间非常重要。

何时关注HTML网页资源的下载时间:

  • 当您有大量首次访问者时(来自搜索引擎和/或社交媒体)。研究表明,这些天人们不是很耐心,所以你真的需要不遗余力地给人留下良好的第一印象。 (另见Jakob Nielsen关于Page AbandonmentAnswer EnginesResponse Times的文章。)
  • 适用于使用移动设备的访客。移动数据网络通常很慢和/或拥塞。
  • 对于实行持续交付并导致资产频繁流失的商店(对于全新的网站和应用程序更为常见)

P.S。 - 亚伦·霍普金斯(Aaron Hopkins)有一篇关于optimizing page load time我见过的最好的文章。有点过时了,但仍然非常相关。

P.S.S。 - 你可能想看看Zepto,一种轻量级(24K vs 100K),api兼容的替代jQuery