代码之家  ›  专栏  ›  技术社区  ›  Cherian

从cdn(Google)流式处理jquery(js文件)

  •  4
  • Cherian  · 技术社区  · 16 年前

    这是一个不做家庭作业的例子。:-)

    除了动态加载的优势外,当我可以从我的服务器将它作为一个包含19kb jquery zip文件的单个文件加载时,从Google服务器中包含一个javascript库(在我的例子中是jquery)是否有意义?我已经编写了额外的javascript代码所有这些代码都用JS压缩程序压缩并提供了HTTP压缩。

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

    5 回复  |  直到 12 年前
        1
  •  10
  •   Eran Galperin    16 年前

    考虑到从Google cdn下载的jquery脚本可能已经缓存在访问者的浏览器上,因为无论从何处下载,它都具有一致的头部和缓存控制。因此,一般来说,大多数用户只需下载特定于站点的javascript脚本。此外,cdn通常比单个服务器的响应时间更快,因为它们从离您最近的服务器响应。

    对于你的问题没有直接的答案,因为这两种方法都能在现代连接上提供良好的性能。您应该在胁迫下分析您的系统,看看哪种解决方案能够提供最好的结果(如果甚至需要这样的优化)。

        2
  •  1
  •   Sam Hasler    16 年前

    您确定脚本将被并行下载吗? This example from Cuzillion 似乎是说只有IE8能做到这一点。

    同样值得了解的是,您的页面视图中有多少是第一次访问的,有多少以前访问过该站点,以帮助您决定缓存将对下载时间产生多大的影响。如果你有大量的第一次来访者,那么为了让第一次体验尽可能快,可能有必要对他们有利。

        3
  •  1
  •   Cherian    16 年前
        4
  •  0
  •   Andrew    16 年前

    这是一个真正的问题吗?只需确保正确配置了HTTP头中的缓存控件,并且最终用户的客户端将只拉它一次。这是绝对微不足道的数据量。

        5
  •  0
  •   kgriffs    12 年前

    在我看来,使用知名的 jQuery CDN (比如谷歌),还有一些潜在的好处,所以我个人倾向于采用cdn方法。如果没有别的,那就少了一个文件,作为源代码树的一部分,我需要担心和维护。

    我看到使用cdn与使用单个fat javascript存档相比有几个优势:

    • 减少检索未缓存资源的延迟,因为这些资源是从边缘位置提供的
    • 对于第三方脚本,用户的浏览器可能已经缓存了它们,不必再为您的站点下载它们。
    • 通过在多个主机名之间分配您的资产(当然,这也可以通过使用简单的子域技巧通过您自己的服务器实现),解决每个主机浏览器对并行请求的限制。
    • 减少主服务器上的总负载,特别是在高峰使用期或yc/slashdot“攻击”期间。

    何时关注HTML页面资产的下载时间:

    • 当你有大量的第一次来访者时(从搜索引擎和/或社交媒体)。研究表明,这些天人们不是很有耐心,所以你真的需要走出你的方式,作出一个良好的第一印象。(另见Jakob Nielsen的文章 Page Abandonment , Answer Engines Response Times )
    • 对于使用移动设备的访客。移动数据网络通常速度慢和/或拥挤。
    • 对于持续交付并导致资产频繁流失的商店(对于全新网站和应用程序更为常见)

    P.S.-亚伦·霍普金斯有一篇关于 optimizing page load time 我见过。有点过时,但仍然很相关。

    P.S.S.-您可能想看看Zepto,一种轻量级(24K对100K),与API兼容的替代产品 jQuery .