使用google.load('jQuery',…)与直接包含托pipe脚本URL有什么优势?
Google托pipe了一些stream行的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能够将多个文件捆绑在一起的好处之外,使用google.load并没有什么好处。 事实上,如果你知道所有你想使用的库(比如说jQuery 1.2.6),你可能会让用户的浏览器执行一个不需要的HTTP连接。 由于使用Google托pipe的整个目的是为了减less带宽消耗和响应时间,因此最好的决定 – 如果您只使用1个库,则直接调用该库。
另外,如果您的网站将使用任何SSL证书,您需要通过Google的HTTPS连接调用脚本来进行规划。 从http页面调用https脚本没有任何缺点,但是从https页面调用http脚本将导致比您想要的更加模糊的debugging问题。
- 它允许你dynamic地加载代码中的库,无论你想要的。
- 因为它可以让你直接切换到JavaScript的新版本的库,而不会强迫你重build/更改你的网站上的所有模板。
它允许Google更改url(但由于URL方法已经build立,所以无法更改)
理论上,如果你做了几个google.load(),谷歌可以绑定到一个文件,但我不认为这是实现。
我发现这对于testing不同的库和不同的方法是非常有用的,特别是如果你不习惯它们,并且希望看到它们之间的差异,而不必下载它们。 看起来,做这件事的主要原因之一是它与同步脚本调用是asynchronous的。 你也得到一些整洁的东西,直接包含在谷歌加载器,如客户端的位置。 你可以从中获得它们的经纬度。 不一定有用,但如果您打算有针对性的广告或类似的东西可能会有所帮助。
更何况dynamic加载总是有用的。 特别是要消除最初的工地负荷。 保持最初的“网站加载时间”尽可能less是每个网页devise师正在打一场艰苦的战斗。
您可能只想在特殊条件下加载库。
另外google.load方法会加快初始页面显示。 否则,如果在HTML代码中包含脚本标记,页面呈现将冻结,直到文件被加载。
就我个人而言,我感兴趣的是浏览器是否有一个caching的好处,也已经加载了这个库。 好像有人浏览到谷歌并加载正确的jQuery库,然后浏览到我的网站,并加载正确的jQuery库……两者可能会使用相同的cachingjQuery。 尽pipe如此,这只是一种投机的可能性。
编辑:是的,至less当使用直接脚本标签的位置,JavaScript库将被caching,如果有人已经从谷歌库(例如,如果它被另一个网站包含在其中)。
如果您要编写一大堆只在特定事件发生时才使用该库的JavaScript,则可以等到事件发生时才下载该库,这样可以避免不必要的HTTP请求给那些实际上不会触发事件的用户。 但是,像Prototype + Scriptaculous这样的库下载了超过300kb的JavaScript代码,这是不现实的。