api.ajax和ajax
Google已宣布扩展其Google AJAX API服务: AJAX库API 。 他们收集了最常见JavaScript库的集合,并在其内容分发网络上提供了它们。
对JavaScript框架库的普遍批评是从使用它们的所有站点下载了相同的代码,这浪费了带宽并在浏览器的本地缓存中创建了重复的文件。 Google的一项举措是减轻这种负担,并创建一种JavaScript 香格里拉 ,其中所有框架都可以一起使用,从而有效利用它们的时间,甚至可以唱歌。 如果有比唱歌更好的方法来毁掉一架像样的飞机失事幸存电影 ,那我还没看过! 弗兰克·卡普拉(Frank Capra)有很多要回答的问题。
无论如何,如果有足够的站点将Google CDN用于其JavaScript库,则浏览器已经缓存了它的本地副本的机会就越大,并且可以避免再次下载它。 每个人都能获得性能收益!
使用该服务很简单。 您可以通过URI直接引用库,如下所示:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js">
</script>
另外,您可以这样使用Google的API:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("prototype", "1.6.0.2");
</script>
第一个参数是库的名称,第二个参数是所需的版本。
附带JavaScript在浏览器支持时被压缩(124K Prototype库压缩到大约30K),并带有适当的缓存头。 该服务的一项出色功能是您可以控制版本控制。 上面的示例下载了非常具体的Prototype版本: 1.6.0.2
。 但是您可以指定任何增量级别,它将提供最新版本。 例如,如果指定版本1.6
则将获得最新的1.6
增量版本。 如果指定版本1
,也会发生同样的情况;如果不指定任何版本,则将获得可用的最新版本。
但是,在进行一些测试时,我甚至注意到了一些东西,调整了Cache-Control
标头值以适合请求。 指定特定的增量版本时,标头值如下所示:
Cache-Control: public, max-age=31536000
这会通知任何关心兑现Cache-Control标头的缓存机制,表明内容可以安全缓存长达一年。 当指定了更通用的版本时,您得到以下信息:
Cache-Control: public, max-age=3600, must-revalidate, proxy-revalidate
这通知缓存,应每小时检查一次内容的更改,以确保提供最新版本。
该文档仅提及与google.load
API调用相关的版本控制,但以下所有直接URI似乎都可以正常工作并提供Prototype 1.6.0.2:
-
http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js
-
http://ajax.googleapis.com/ajax/libs/prototype/1.6/prototype.js
-
http://ajax.googleapis.com/ajax/libs/prototype/1/prototype.js
目前,Google托管:
这些库中的某些库也具有缩小版本。
YouTube上有一个简短的视频,介绍了所有操作原理,但似乎有些过时了。 用于直接访问JavaScript文件的URI与文档不匹配,因此不起作用。
当在Ajaxian上宣布API时,Don还谈到了这种服务的未来非常有趣:
如果我们发现用法很好,则可以与浏览器供应商合作以自动交付这些库。 然后,如果他们看到我们使用的URL,则可以从本地系统自动加载库,甚至是特殊的JIT库。 因此,根本没有网络受到攻击!
尽管有一些脾气暴躁的老顽固主义者的骚动,但 JavaScript框架库的使用只是在增加和改进。 我记得在DHTML的过去,每个可用脚本都具有自己的addEvent
方法版本。 如此多的重复代码。 通用框架的可用性停止了重复并提供了有用的抽象级别。 我认为Google的新服务是朝正确方向迈出的重要一步。
翻译自: https://www.sitepoint.com/serve-javascript-frameworks-faster-with-the-google-ajax-libraries-api/
api.ajax和ajax