代码之家  ›  专栏  ›  技术社区  ›  Vilmantas Baranauskas

使用google.load(“jquery”,…)与直接包含托管脚本url相比有什么优势?

  •  38
  • Vilmantas Baranauskas  · 技术社区  · 16 年前

    谷歌在以下网站上托管了一些流行的javascript库: http://code.google.com/apis/ajaxlibs/

    据谷歌称:

    加载库的最强大方法是使用google.load()。

    使用的真正优点是什么

    google.load("jquery", "1.2.6")

    VS

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

    ?

    7 回复  |  直到 14 年前
        1
  •  31
  •   Drew Noakes    14 年前

    除了google能够根据请求将多个文件捆绑在一起的好处之外,使用google.load没有额外的好处。事实上,如果您知道要使用的所有库(比如jquery 1.2.6),您可能会让用户的浏览器执行一个不需要的HTTP连接。因为使用谷歌主机的关键是减少带宽消耗和响应时间,所以最好的决定是直接调用该库(如果您只使用一个库)。

    此外,如果您的站点将使用任何SSL证书,您希望通过Google的HTTPS连接调用脚本来计划这一点。从HTTP页面调用HTTPS脚本没有任何缺点,但是从HTTPS页面调用HTTP脚本将导致比您想象的更模糊的调试问题。

        2
  •  4
  •   d8uv    16 年前
    1. 它允许你 dynamically load 代码中的库,无论您想在哪里。
    2. 因为它允许您直接在javascript中切换到库的新版本,而不强制您在整个站点重建/更改模板。
        3
  •  3
  •   James Curran    16 年前

    它允许Google更改URL(但由于已经建立了URL方法,因此无法更改)

    理论上,如果你做了几个google.load(),google就可以打包成一个文件,但我不认为已经实现了。

        4
  •  3
  •   user50297    16 年前

    我发现它对于测试不同的库和不同的方法非常有用,特别是如果您不习惯它们,并且希望看到它们之间的差异,而不必下载它们。看起来这样做的主要原因之一,是它是异步的,而不是同步脚本调用。您还可以得到一些直接包含在Google加载器中的整洁的东西,比如客户机位置。你可以从中得到它们的经纬度。不一定有用,但如果你计划有针对性的广告或类似的东西,它可能会有用。

    更不用说动态加载总是有用的。尤其是为了消除初始现场荷载。把最初的“网站加载时间”保持在尽可能小的水平,这是每个网页设计师都在进行的一场艰苦的战斗。

        5
  •  1
  •   aemkei    16 年前

    您可能只想在特殊情况下加载库。

    此外,google.load方法可以加快初始页面的显示速度。否则,如果在HTML代码中包含脚本标记,则在加载文件之前,页面呈现将冻结。

        6
  •  0
  •   Kzqai    16 年前

    就我个人而言,我对浏览器是否有缓存优势感兴趣,因为浏览器已经加载了该库。似乎如果有人浏览到谷歌并加载正确的jquery lib,然后浏览到我的网站并加载正确的jquery lib……两者都可以使用相同的缓存jquery。不过,这只是一种推测性的可能性。

    编辑:是的,至少在将直接脚本标记用于该位置时,如果已经有人从Google中调用了该库(例如,如果该库被其他站点包含在某个位置),则会缓存该javascript库。

        7
  •  0
  •   Andrew Noyes    16 年前

    如果要编写大量仅在特定事件发生时才使用库的javascript,可以等到事件发生时再下载库,这样可以避免对那些最终没有触发事件的用户不必要的HTTP请求。但是,对于像prototype+scriptaculous这样的库(它下载了超过300kb的javascript代码),这是不实际的。