我应该链接到 Google API 的 JS 库云吗?

IT技术 javascript jquery dependencies
2021-03-17 08:45:45

我正在寻找从 Google API 的云中提取 jQuery 和其他 JS 库的优缺点,而不是下载文件和直接部署。

你说什么?


我的决定

lib 已经缓存在用户系统上的可能性对我来说是最重要的因素,所以我将使用永久链接到 googleapis.com(例如 ajax.googleapis.com/ajax/libs/...)。我同意这里的其他人的观点,即失去对 Google 服务器云的访问权限是一个最小的问题。

6个回答

骗局

  • 处于美国禁运国家(例如伊朗)的用户不会收到 Google 的回复
我不知道这个。看来你是对的。google.com/search?q=google+iran+javascript+library+jquery
2021-04-19 08:45:45

优点:它可能已经缓存在用户的系统上。谷歌有大管道。您无需为带宽付费。

缺点:您现在有两种不同的方式使您的站点不可用:您的服务器上的服务中断或 Google 服务器上的服务中断。

@Ben:对于任何合理配置的浏览器缓存,这都是一个微不足道的考虑因素。也适用于“中断风险”,它更恰当地表达为“与用户的缓存到期同时发生的中断风险”。
2021-04-17 08:45:45
谷歌有很多冗余,谁知道有多少数据中心,所以虽然谷歌端存在中断的风险,但它小到几乎可以忽略不计。
2021-04-19 08:45:45
另一个优势是让您的某些内容由不同的域提供服务,因此用户花在等待大多数浏览器内置的“每个域两个连接”规则上的时间更少。
2021-04-28 08:45:45
谷歌最近至少有两次大停电。news.google.com/...
2021-04-30 08:45:45
@Nosredna:HTTP 响应的 max-age 是 31536000 秒或 1 年。
2021-05-12 08:45:45

我一直在研究 jQuery 的 Google 加载器的实际性能,特别是,这是我发现的:

  1. Google 的服务器速度快且非常可靠。
  2. 他们是从CDN,如果你有很多海外用户,他们会得到,这意味着服务很多更好的加载时间。
  3. 他们提供 gzip 压缩文件。所以他们提供的字节数比他们需要的多得多。

如果您知道您在 Apache、Lighttpd 或任何您使用的文件服务中做什么,您可以像 Google 一样设置您的缓存标头,并通过您自己的服务来显着减少您的最终用户必须下载的数据量服务器。您还可以在此时组合您的脚本并减少您的整体 HTTP 请求。

一句话:谷歌的表现不错,但不是很好。如果你有很多很多海外用户,那么谷歌可能会更好,如果你的用户大多在美国,并且你关心的是最大的性能,那么学习缓存、Etags、gzipping 等并自己服务。

他们现在正在压缩文件,因此您列表中的第三项已过时。
2021-04-26 08:45:45
根据此页面,它们是否未压缩取决于您是否向加载调用添加 {uncompressed:true} 。那不正确吗? code.google.com/apis/ajaxlibs/documentation/index.html#jquery
2021-04-29 08:45:45
这将提供 JS 文件的非缩小版本。它仍然不进行 gzip 压缩,这可以减少另外 30-60% 的文件大小。
2021-05-03 08:45:45

优点:

  • 谷歌的连接性可能比你的好得多
  • 这是一个免费的 CDN(内容分发网络)
  • 由于您使用的是 CDN,因此您的 web 应用程序可能会加载得更快

缺点:

  • 如果/当您需要通过重新打包第三方 JS 库的一个子集进行优化时,您需要自行解决,并且您的 web 应用程序可能会加载较慢

除了其他人提出的观点外,我还要指出两个额外的缺点:

  • 一个额外的外部 HTTP 请求,所以假设你有一个你自己的 Javascript 文件(几乎可以肯定),它是最少两个而不是最少一个;
  • 恕我直言,因为 jQuery 加载是异步的,您的整个页面可以在库加载之前加载,因此您对文档就绪所做的影响有时在应用时对用户来说是显而易见的。我认为这不是一个很好的用户体验。
除非您在某个 Intranet 上,否则为什么“外部”请求不好?它只是使并行加载更容易。(大多数浏览器限制到同一服务器的连接数,而不是不同服务器的连接数。)
2021-04-28 08:45:45