众所周知,最好从内容分发网络(CDN)加载静态文件。JavaScript、CSS和图像文件都属于这一类文件。然而,除了CDN之外还有另一个步骤——公共库。这些公共库是高速、地理分布的服务器,充当流行的Javascript开源库的内容分发网络。用户可以调用这些著名的JavaScript库并用少量代码将它们添加到站点。著名的公共库有许多——其中两个最著名的是谷歌和CDNJS。为这些库中的所有JavaScript文件提供服务似乎是个好主意,但这对大多数人来说可能不是好主意。本文将介绍最重要的使用它们的用例是jQuery。而这也仅仅来自谷歌的网络。
购买拥有内置CDN的Hostgator计划
公共库和CDN的目标都是一致的。他们从地理位置接近用户的服务器以非常高的速度为用户提供内容,但并不是所有的香港或美国虚拟主机计划都包含一个专用的CDN。例如,Hostgator优化的WordPress包使用的是SiteLock CDN网络,而不是依赖于Cloudflare的共享主机计划。这是Hostgator优惠列表,帮助用户找到最好的交易!然而,托管公共图书馆和传统CDN之间有一些区别。
DNS解析
某些CDN(如Cloudflare)使用“反向代理”设置。这意味着静态文件将通过站点的URL提供,就像这样:https://www.yoursite.com/jquery.js,而不是:https://yoursite.somecdnnework.com/jquery.js。这有一个重要的副作用,这意味着对于第一个URL,浏览器不必执行额外的DNS查找来检索文件jquery.js。然而,第二个URL与自己的站点位于不同的域名上,因此在浏览器获取新域的IP地址时会有额外的延迟时间。
理想情况下,我们希望尽可能减少DNS查找的数量。内部测试让我确信,在大多数情况下,额外的DNS查找是没有任何意义的。因此,我更喜欢在像Cloudflare这样的反向代理模型上运行的CDN,而不是改变静态文件URL的传统网络。但是,根据定义,公共库是托管在外部URL上的。谷歌的URL以“ajax.googlevis.com”开头,CDNJS的URL是“cdnjs.Cloudflre.com”。这意味着除非浏览器已经缓存了来自另一个站点的响应,否则始终会进行额外的DNS查找。与反向代理CDN或者仅仅在自己的服务器上托管文件相比,这会降低公共库的使用体验。
全球分布式网络比较
并非所有的CDN都是相同的。尽管大多数公司都在努力将服务器扩展到全球各地,但也有一些地方长期得不到足够的服务。非洲就是一个典型的例子。我测试过的许多知名的CDN提供商,没有一个能在非洲二线城市提供很好的服务。他们通常只在约翰内斯堡有一个服务器,仅此而已。推荐相关内容 网站使用CDN有什么好处。
然而,像谷歌和CDNJS这样的公共库拥有比大多数CDN强大得多的网络。CDNJS现在使用的是Cloudflare的网络,这意味着它在全球拥有强大的影响力,在任何给定的区域都有多个服务器位置。总而言之:大型公共JavaScript库比普通的CDN网络要快。
并非所有JavaScript都同样重要——jQuery是独一无二的,jQuery在JavaScript库中占有重要地位。目前,几乎75%的网站使用jQuery。与网站上的其他外部JavaScript文件相比,它也相当大。因此,如果必须选择一个JavaScript库来加速,它无疑是由jQuery完成的。关于加速的相关内容推荐 海外服务器使用CDN是怎样加速网站的。
jQuery通常是渲染阻塞资源
我之前在Hostgator博客上写过关于如何优化网站加载速度的文章。我曾提醒所有读者应该“延迟”或“异步”所有的JavaScript,这样它就不会阻止站点呈现。不幸的是,外部脚本和内联脚本通常都会引用jQuery。这意味着,通常来说,应该在头文件中加载jQuery,这会减慢页面渲染速度。
如果无视这个建议,通过“延迟”或“异步”加载jQuery,网站总有一天会崩溃,网站所有者也找不到任何原因。相信我。我很想推迟jQuery的加载,但是这样做太不稳定了。因此,我想使用一切可能的方法来加速jQuery的交付。为此,公共公共库是最好的方法。推荐相关内容 提升网站访问速度的方主要有哪些?