我听说有些人在访问他们的网站时遇到问题,因为他们的企业防火墙不喜欢网站从其他网站获取代码,即跨网站脚本,因此从谷歌获取jQuery?
有没有人遇到这样的问题?
一个问题是谷歌的服务器可能并且确实在最糟糕的时候下降.在我对" 你最不舒服的编程经历是什么? "这个问题的回答中,我回答说:
我向一组潜在用户展示了我的团队的新Web应用程序.我花了几分钟时间谈论Google Visualization API可以做的所有很酷的事情,因为我们在应用程序中大量使用它.为了演示,我决定绘制我们之前收集的几组数据.它旨在传达这样的信息:"看看它有多容易!普通人可以使用我们的产品制作漂亮的图表."
幸运的是,承载使用Visualization API所必需的Javascript文件的Google服务器决定在我的演示期间中途停止工作.我坐在椅子上,盯着屏幕,喃喃自语"但......但他们是谷歌......他们的服务器无法下降".团队试图笑掉它,但是当时每个人都意识到,当真正重要时,依赖任何第三方(甚至像谷歌这样大的第三方)是多么危险.
我知道这似乎不太可能,但除非你别无选择,否则我建议不要在第三方服务器上托管重要文件,即使它们是Google的服务器.让客户抱怨停电很糟糕.让客户抱怨不是你的错,而你无法解决的停电更糟糕.
我认为通过托管谷歌你的意思是AJAX Libraries API?我能看到的优点是:
由于JS来自Google的CDN,因此您可以节省网站带宽
您可能会看到更好的响应速度和速度,因为内容来自Google的分布式CDN,而不是您的服务器.
如果用户之前访问过另一个使用Google托管其JS库的网站,则用户的浏览器可能已经将其缓存.
Google会针对您正在运行的库版本应用最新的错误修复程序和安全修补程序.与其他人声称的相反,他们不会自动升级到最新版本.例如,如果您指定要Mootools 1.11,除非您专门更改脚本包含调用以请求它,否则您将不会获得1.2或更高版本.但他们将应用特定于该版本的修补程序.
缺点:
就像你提到的,一些更热心的安全工具和产品可能会涉及来自不同主机的脚本.我不知道这是一个多么广泛的问题,但值得研究.
它可能会为页面加载添加另一个DNS查找.
谷歌承诺"无限期"托管每个版本的图书馆,你希望他们的意思.但是财富和政策会发生变化,如果停止托管服务,您可能会发现自己不得不重新访问许多网站来修复他们的JS.
您依赖第三方来托管您的部分内容.显然你会期望谷歌的正常运行时间非常好,但如果他们确实遇到问题,你可能需要向客户解释为什么他们的网站不能正常工作,因为谷歌存在网络问题.
Google会托管每个库的完整版本,但有些像Mootools可以让您创建仅包含所需组件的自定义版本.因此,Google版本可能比您需要的更加饱满.
您无法自定义或更改库.对图书馆进行下游更改是一个毛茸茸的主张,但如果你遇到困难,它可能是最简单的选择.将库托管在外部会增加额外的复杂性,因为您必须切换到内部副本.
错误修复确实应用于您选择的版本,因此如果您以某种方式依赖于错误行为,这可能会导致问题.据推测,图书馆的作者会对潜在的突破性变化非常谨慎,但墨菲的定律是某些地方会出现问题.