这对某些人来说可能是显而易见的,但我一直在想:为什么我应该依赖Google's server来为我的网站托管jQuery?是因为这样加载更快吗?
svdrlsy41#
这是因为:1.增加可用并行度。(Most浏览器一次只能从任何给定的站点下载3或4个文件。1.它增加了缓存命中的机会。(As更多的网站遵循这种做法,更多的用户已经准备好了文件。1.它确保有效载荷尽可能小。(Google可以以各种格式(如GZIP或DEFLATE)预压缩文件。这使得下载时间非常短,因为它是超级压缩的,而不是在运行中压缩的。1.减少服务器占用的带宽。(谷歌基本上提供免费带宽。1.确保用户在地理位置上获得接近的响应。(谷歌在世界各地都有服务器,进一步降低了延迟。1.(可选)它们将自动保持您的脚本最新。(If如果你喜欢“凭感觉飞行”,你可以随时使用他们提供的任何脚本的 * 最新 * 版本。这些可以修复安全漏洞,但通常只是破坏你的东西。
rkue9o1l2#
有几种情况下你可能不想从Google的CDN使用jQuery:1.**当您构建一个内部网应用程序时,Web服务器与客户端托管在同一个网络上。**如果您使用Google的CDN jQuery,您将调用互联网,而不是本地网络上的Web服务器。这会增加组织的带宽,但速度较慢。1.当您想脱机运行应用程序时。(与第一个问题有很大的联系)如果你需要在一个开发环境中工作(例如使用Bower管理),你可能需要能够使你的应用程序在没有任何互联网连接的情况下工作(即:在火车上:)1.当您需要自定义时。例如,如果您使用Grunt构建库,以便仅使用某些模块或设置AMD名称1.**当您通过SSL提供需要jQuery的页面时。**您应该通过SSL提供JavaScript以及您的页面,以避免安全问题和警告。Microsoft hosts jQuery在CDN上这是另一个可以与使用Google托管的jQuery相媲美的选择。
k75qkfdt3#
TJ VanToll的study让我相信,将jQuery与其他脚本连接起来比从CDN加载更好。原因是在移动的设备上获取jQuery所涉及的延迟:“2012年,美国移动的网络上的平均RTT时间为344毫秒。这344毫秒不仅适用于每个HTTP请求-现在平均每个网页都有93个-而且还适用于每个DNS查询和TCP连接。虽然平均RTT正在改善,但只有很小的额外收益,因为目前的网络在物理学规定的理论极限的一个小因素之内。他还引用了Steve Souders的this post,说明了为什么你实际上不太可能从使用CDN中获得缓存好处:“由于CDN提供商、jQuery版本和协议使用(http与https),获得CDN缓存命中的机会非常低-从外部域下载有可能执行不止一次而是三次往返(DNS查找,TCP连接和HTTP GET)。
agxfikkp4#
最大的好处是缓存。其原理是,如果访问者访问的网站正在加载他们的JavaScript库,例如来自Google CDN的jQuery,那么当他们访问您的网站时,该库已经在该用户的浏览器缓存中,并且不必再次下载。这在理论上听起来很棒。这里和其他地方分享的利益都是理论上的。刚刚看到了一个关于使用CDN的深入分析,以及它是否提供了预期的性能优势。http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
4ngedf3f5#
不要让谷歌托管你的jQuery的一个主要原因是,如果你在中国,它不会下载,这是很多人没有想到的。它的封锁沿着与许多其他脚本,字体等.由Google CDN托管。如果你需要接触到中国观众,你最好总是使用一个后备托管在自己的服务器上。Google APIS Blocked in China
ddhy6vgd6#
这里有一些很好的答案来回答“为什么你应该……”和“为什么你不应该……”我只是想添加一个列表,如果你确实想从CDN加载jQuery,可以选择Google。
但总结一下,你基本上是在提高你的整体网站/应用程序的性能。
a14dhokn7#
使用带有Service Worker的CDN,您可以在客户端生命周期内下载一次CDN,而不是每次更新代码时都下载。
3vpjnl9f8#
当使用Http Cache时,该高速缓存键是资源本身的组合,即jquery.js * 以及 * 顶级域即。example.com。
jquery.js
example.com
*Safari / Webkit于2013年实施每Optionally partition cache to prevent using cache for tracking*Google于2020年实施通过分区该高速缓存获得安全和隐私*Firefox将于2021年实现每Enable Top-Level Origin Based HTTP-Cache Splitting
使用CDN还有其他好处,但这种长期存在的性能改进已被安全问题所取代。
8条答案
按热度按时间svdrlsy41#
这是因为:
1.增加可用并行度。
(Most浏览器一次只能从任何给定的站点下载3或4个文件。
1.它增加了缓存命中的机会。
(As更多的网站遵循这种做法,更多的用户已经准备好了文件。
1.它确保有效载荷尽可能小。
(Google可以以各种格式(如GZIP或DEFLATE)预压缩文件。这使得下载时间非常短,因为它是超级压缩的,而不是在运行中压缩的。
1.减少服务器占用的带宽。
(谷歌基本上提供免费带宽。
1.确保用户在地理位置上获得接近的响应。
(谷歌在世界各地都有服务器,进一步降低了延迟。
1.(可选)它们将自动保持您的脚本最新。
(If如果你喜欢“凭感觉飞行”,你可以随时使用他们提供的任何脚本的 * 最新 * 版本。这些可以修复安全漏洞,但通常只是破坏你的东西。
rkue9o1l2#
有几种情况下你可能不想从Google的CDN使用jQuery:
1.**当您构建一个内部网应用程序时,Web服务器与客户端托管在同一个网络上。**如果您使用Google的CDN jQuery,您将调用互联网,而不是本地网络上的Web服务器。这会增加组织的带宽,但速度较慢。
1.当您想脱机运行应用程序时。(与第一个问题有很大的联系)如果你需要在一个开发环境中工作(例如使用Bower管理),你可能需要能够使你的应用程序在没有任何互联网连接的情况下工作(即:在火车上:)
1.当您需要自定义时。例如,如果您使用Grunt构建库,以便仅使用某些模块或设置AMD名称
1.**当您通过SSL提供需要jQuery的页面时。**您应该通过SSL提供JavaScript以及您的页面,以避免安全问题和警告。
Microsoft hosts jQuery在CDN上这是另一个可以与使用Google托管的jQuery相媲美的选择。
k75qkfdt3#
TJ VanToll的study让我相信,将jQuery与其他脚本连接起来比从CDN加载更好。
原因是在移动的设备上获取jQuery所涉及的延迟:
“2012年,美国移动的网络上的平均RTT时间为344毫秒。这344毫秒不仅适用于每个HTTP请求-现在平均每个网页都有93个-而且还适用于每个DNS查询和TCP连接。虽然平均RTT正在改善,但只有很小的额外收益,因为目前的网络在物理学规定的理论极限的一个小因素之内。
他还引用了Steve Souders的this post,说明了为什么你实际上不太可能从使用CDN中获得缓存好处:
“由于CDN提供商、jQuery版本和协议使用(http与https),获得CDN缓存命中的机会非常低-从外部域下载有可能执行不止一次而是三次往返(DNS查找,TCP连接和HTTP GET)。
agxfikkp4#
最大的好处是缓存。其原理是,如果访问者访问的网站正在加载他们的JavaScript库,例如来自Google CDN的jQuery,那么当他们访问您的网站时,该库已经在该用户的浏览器缓存中,并且不必再次下载。这在理论上听起来很棒。
这里和其他地方分享的利益都是理论上的。刚刚看到了一个关于使用CDN的深入分析,以及它是否提供了预期的性能优势。http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
4ngedf3f5#
不要让谷歌托管你的jQuery的一个主要原因是,如果你在中国,它不会下载,这是很多人没有想到的。它的封锁沿着与许多其他脚本,字体等.由Google CDN托管。如果你需要接触到中国观众,你最好总是使用一个后备托管在自己的服务器上。Google APIS Blocked in China
ddhy6vgd6#
这里有一些很好的答案来回答“为什么你应该……”和“为什么你不应该……”
我只是想添加一个列表,如果你确实想从CDN加载jQuery,可以选择Google。
但总结一下,你基本上是在提高你的整体网站/应用程序的性能。
a14dhokn7#
使用带有Service Worker的CDN,您可以在客户端生命周期内下载一次CDN,而不是每次更新代码时都下载。
3vpjnl9f8#
更新2021 -公有CDN不再增加缓存命中几率
当使用Http Cache时,该高速缓存键是资源本身的组合,即
jquery.js
* 以及 * 顶级域即。example.com
。*Safari / Webkit于2013年实施每Optionally partition cache to prevent using cache for tracking
*Google于2020年实施通过分区该高速缓存获得安全和隐私
*Firefox将于2021年实现每Enable Top-Level Origin Based HTTP-Cache Splitting
使用CDN还有其他好处,但这种长期存在的性能改进已被安全问题所取代。
进一步阅读