使用google.load('jQuery',..)与直接包含托管脚本URL相比有什么优势

What are advantages of using google.load('jQuery', ...) vs direct inclusion of hosted script URL?

本文关键字:URL 脚本 包含托 什么 load google jQuery 使用      更新时间:2023-09-26

Google在以下位置托管了一些流行的JavaScript库:http://code.google.com/apis/ajaxlibs/

根据谷歌:

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

使用的真正优势是什么

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

与。

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

除了谷歌能够根据请求将多个文件捆绑在一起之外,使用Google.load没有任何好处。事实上,如果你知道你想要使用的所有库(比如jQuery 1.2.6),你可能会让用户的浏览器执行一个不需要的HTTP连接。由于使用谷歌托管的全部目的是减少带宽消耗和响应时间,如果你只使用一个库,最好的决定是直接调用该库。

此外,如果你的网站将使用任何SSL证书,你需要通过谷歌的HTTPS连接调用脚本来进行计划。从http页面调用https脚本没有坏处,但从https页面调用http脚本会导致比你想象的更模糊的调试问题。

  1. 它允许您在任何需要的地方动态加载代码中的库
  2. 因为它允许您在javascript中直接切换到库的新版本,而无需强制您在整个网站上重建/更改模板

它允许谷歌更改URL(但他们不能,因为URL方法已经建立)

理论上,如果你做了几个google.load(),谷歌可以将其捆绑到一个文件中,但我认为这还没有实现。

我发现它对于测试不同的库和不同的方法非常有用,特别是如果你不习惯它们,并且想并排查看它们的差异,而不必下载它们。这样做的主要原因之一似乎是,与同步脚本调用相比,它是异步的。你还可以得到一些直接包含在谷歌加载程序中的整洁的东西,比如客户端位置。你可以从中获得他们的纬度和经度。不一定有用,但如果你打算做有针对性的广告或类似的事情,它可能会有所帮助。

更不用说动态加载总是有用的。特别是为了平滑初始站点负载。将最初的"站点加载时间"尽可能地缩短是每个网页设计师都在进行的一场艰苦的战斗。

您可能只想在特殊条件下加载库。

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

就我个人而言,我很感兴趣的是,对于已经加载了该库的浏览器来说,是否有缓存的好处。似乎有人浏览到谷歌并加载了正确的jQuery库,然后浏览到我的网站并加载了合适的jQuery。。。两者都可能使用相同的缓存jQuery。不过,这只是一种推测性的可能性。

编辑:是的,至少在使用直接脚本标记到该位置时,如果有人已经从谷歌上调用了javascript库(例如,如果它被其他网站包含),那么javascript库将被缓存。

如果您要编写一船只在特定事件发生时使用该库的JavaScript,您可以等到事件发生时再下载该库,这样可以避免那些最终没有触发事件的人收到不必要的HTTP请求。然而,对于像Prototype+Scriptaculous这样下载超过300kb JavaScript代码的库来说,这是不现实的。