我正在向一群潜在用户演示我们团队的新Web应用程序。我花了几分钟时间介绍了Google可视化API能够做的所有炫酷的东西,因为我们在应用程序中大量使用它。为了演示,我决定绘制我们之前收集到的一些数据集。旨在传达这样的信息:“看,多容易!普通人也可以使用我们的产品制作出好看的图形。”
真是倒霉,托管使用可视化API所需的Javascript文件的谷歌服务器在我的演示进行到一半时决定停止工作。我坐在椅子上,盯着屏幕,喃喃自语“但是...但是他们是谷歌啊...他们的服务器不能宕机”。团队试图嘲笑一下,但每个人都意识到,在关键时刻依赖于任何第三方(即使是像谷歌这样的大公司)有多么危险。
我知道这似乎不太可能,但除非你确实没有其他选择,否则我建议不要将关键文件托管在第三方服务器上,即使它们是谷歌的服务器。客户抱怨停机问题很糟糕。如果客户抱怨停机问题不是你的错,并且你无法解决,那就更糟糕了。
我猜您所指的谷歌托管是指 AJAX Libraries API 吧?我看到的优势有:
而缺点有:
我最近才开始使用jQuery,并且只使用本地副本,因此无法评论跨站问题。
由于您的问题标题询问是否在Google上托管存在任何缺点,最明显的答案是他们可能随时升级其版本,可能会破坏您的代码或导致意外的副作用。更新:Guillaume评论说,当您托管时,始终链接到特定版本的jQuery。我不知道这一点-谢谢。
最后,如果您所在的国家偶尔出现国际互联网连接中断,或者您开发了一个内部网络并且互联网连接中断,您可能会发现本地用户出现错误,因为他们无法访问Google。
一个巨大的优势是离线使用。我在没有移动数据的情况下在火车上写了很多代码-所以在我的Web项目中有JS非常有用。它还使我完全掌控并自信地管理变更。
我不知道,但我喜欢自己掌控:), 我总是将JS上传到Web服务器
您网站的最重要的用户通常是重复访问者,他们会缓存您本地托管的.js文件,因此他们只在第一次访问网站时才会受到带宽影响。
每个“是”答案都是避免依赖Google外部托管Javascript的理由。
例如:如果您运行像StackOverflow这样的网站,在那里您的访问者通常是技术娴熟的人,拥有快速连接和完全填充自己缓存的50个其他时间,他们今天查看了StackOverflow的页面,那么从其他地方托管您的Javascript增益将非常小。
但是,如果您在地下室的256kbps DSL线路上为吉隆坡的老年人运行网站,则如果您将这些JS文件卸载到Google,您的访问者将获得一些不错的收益!
一些国家可能会通过其DNS服务器阻止对全国范围的Google域名的访问。
所有这些关于带宽的评论,却没有人谈论缓存。当托管网站时,如果您没有正确地告诉最终用户如何缓存文件以及缓存时间,您就会导致过度使用带宽和由此造成的麻烦。
我的答案很简单。自己托管,将其检入源代码库,并使用非常长的到期标头正确提供服务。这样每个人都只下载一次东西。此外,我真的无法忍受不拥有服务器发送或要求客户端下载的每个文件的想法。
让谷歌托管您的jQuery有许多缺点,正如其他用户所指出的:
更好的回答方式可能是问:让谷歌托管您的jQuery有哪些优势?只有在特定情况下,我才会使用跨站点托管依赖项。即: