2012-02-05 35 views
2

当页面加载速度优先,是它更好地使用一个最小的,轻量级的JavaScript库(托管在CDN),或者是它更好地使用像jQuery的,托管在Google的浏览器可能已经加载了多少CDN?轻量级JS库VS谷歌托管的CDN

编辑:我的问题真正归结为,在CDN上托管的使用jQuery的跨站点缓存效果是否超过使用超轻库的好处,这同样也在CDN上。相比于任何其他

+0

无论哪种方式,它只加载一次。 – PeeHaa 2012-02-05 19:09:17

+0

考虑到许多这些站点已经包含几百KB的未优化图形,并且大多数用户都处于高速连接状态,我总是发现加载95 KB jQuery非常奇怪。与初始页面加载相比,大量的同步jQuery动画对用户体验的影响要大得多。关于“goole loactions”的 – Sparky 2012-02-05 19:24:00

回答

2

jQuery是不重目前JavaScript库看的特征和它支持的浏览器的金额。

同时选择插件,因为它们是由不同的用户编写,有些可能正确的IT智能地考虑这个因素或一些恰到好处它为求在页面上使用您可以考虑这个因素。

是的,如果您使用像Google这样的CDN作为jQuery,那么该库很可能必须由浏览器缓存,而Google也有基于位置的服务器数量,因此您不必担心。

+0

- http://stackoverflow.com/questions/19943588/is-google-web-fonts-or-cdn-bad – 2013-11-16 05:09:43

1

延迟的减少

一个CDN分布在不同的,不同的物理位置跨服务器的静态内容。当用户的浏览器解析这些文件的URL时,它们的下载将自动定位到网络中最近的可用服务器。

就Google的AJAX Libraries CDN而言,这意味着任何不在服务器附近的用户都能够比下载j​​Query更快速地下载它,而不是强制他们从任意位置的服务器上下载它。 有一些与Google相似的CDN服务,但很难打败免费的价格!这个好处本身可以决定这个问题,但还有更多。

增加的并行

为了避免不必要的重载服务器,浏览器限制能够同时进行的连接的数量。根据哪个浏览器,此限制可能低至每个主机名两个连接。 使用谷歌AJAX库CDN消除了一个请求到你的网站,让更多的本地内容的并行下载。对于使用六个并发连接浏览器的用户来说,这并没有产生巨大的差异,但对于那些仍然只能运行两个浏览器的用户来说,差异是显而易见的。

更好的缓存机制

潜在使用谷歌AJAX库CDN的最大好处是,你的用户可能并不需要下载的jQuery的。 不管如何优化您的网站,如果你是在本地托管的jQuery那么你的用户都必须至少下载一次。您的每个用户在其浏览器的缓存中可能已经有几十个相同的jQuery副本,但这些副本在访问您的网站时会被忽略。

但是,如果浏览器发现到的jQuery CDN托管副本的引用,它了解所有这些引用都指的是完全相同的文件。由于所有这些CDN引用都指向完全相同的URL,因此浏览器可以相信这些文件确实是相同的,并且不会浪费时间重新请求文件(如果它已被缓存)。因此,浏览器能够使用缓存在磁盘上的单个副本,而不管CDN引用哪个站点。

这创建了一个强大的“跨站点缓存”效果,所有使用CDN的站点都从中受益。由于Google的CDN提供的头文件试图缓存文件长达一年,因此这种效果真正具有惊人的潜力。由于互联网上数以千计的最受贩运的网站已经在使用Google CDN来提供jQuery,所以当用户访问使用CDN的网站时,很可能很多用户绝不会为jQuery发出一个HTTP请求。 即使有人使用相同的谷歌托管版本的jQuery访问数百个网站,他们只需要下载一次!

+0

问题不在于CDN是什么,或者有什么好处是。 – 2012-02-05 19:28:24

+1

@kennis:再次阅读后,可能不会。这是我提交这个问题的标题。 “轻量级JS库vs Google托管的CDN”,我认为轻量级的JS库在本地托管,他想知道本地和CDN有哪些好处。这可能会帮助他,如果他选择CDN托管图书馆 – ShadowStorm 2012-02-05 19:39:01

+0

@ShadowStorm:谢谢,这真的很有用 – TheCarver 2012-02-05 19:40:33

0

最好使用最适合您的应用程序和开发团队需求的库。一个超级轻量级​​的库可能为您节省几百毫秒的加载时间,但如果您的团队对jQuery/MooTools/Dojo等有更多的经验,最终可能会让您花费在开发时间内。

如果新功能实现和bug通过仅使用二流工具来改善加载时间,您的用户最终会受到影响。