我见过许多网络程序员,包括来自google的ajax api库的Jquery库。除了保存“一些”空间之外,在我们的服务器中不托管这些库是否有任何真正的优势?这样做是好习惯吗?
答案 0 :(得分:4)
5 Reasons Why Businesses Should Use CDN
7 Reasons to use a Content Delivery Network
CDN是内容交付网络(托管库)
虽然总是在远程存储失败的情况下具有本地缓存。 (HTML5 Boilerplate非常好地证明了这一点):
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>
答案 1 :(得分:4)
让Google为您托管API有一些优势。
延迟时间
CDN - 内容交付网络的简称 - 在各种不同的物理位置跨服务器分发您的静态内容。当用户的浏览器解析这些文件的URL时,它们的下载将自动定位到网络中最近的可用服务器。
对于Google的AJAX Libraries CDN,这意味着任何不在服务器附近的用户都可以比强制他们从任意位置的服务器下载jQuery更快地下载jQuery。
有少数CDN服务可与谷歌相媲美,但很难超过免费的价格!仅这一好处就可以决定问题,但还有更多。
增加并行度
为避免不必要地重载服务器,浏览器限制了可以同时进行的连接数。根据哪个浏览器,此限制可能低至每个主机名两个连接。
使用Google AJAX库CDN可以消除对您网站的一个请求,允许您并行下载更多本地内容。对于使用六个并发连接浏览器的用户来说,这并没有产生巨大的差异,但对于那些仍然只运行两个浏览器的用户来说,差别很明显。
更好的缓存
使用Google AJAX Libraries CDN的最大好处是您的用户可能根本不需要下载jQuery。
无论您的网站如何优化,如果您在本地托管jQuery,那么您的用户必须至少下载一次。您的每个用户可能已经在浏览器的缓存中拥有数十个相同的jQuery副本,但这些jQuery副本在访问您的网站时会被忽略。
但是,当浏览器看到对CDN托管的jQuery副本的引用时,它会理解所有这些引用都引用完全相同的文件。由于所有这些CDN引用都指向完全相同的URL,因此浏览器可以信任这些文件真正相同,并且如果文件已经缓存,则不会浪费时间重新请求文件。因此,浏览器能够使用在磁盘上缓存的单个副本,无论CDN引用出现在哪个站点上。
这会产生强大的“跨站点缓存”效果,使用CDN的所有站点都可以从中受益。由于Google的CDN为文件提供了试图将文件缓存长达一年的标题,因此这种效果确实具有惊人的潜力。互联网上已有数千个流量最多的网站已经使用Google CDN来提供jQuery服务,很可能很多用户在使用CDN访问网站时都不会对jQuery发出单一的HTTP请求。
即使有人使用相同的Google托管版jQuery访问数百个网站,他们也只需要下载一次!
答案 2 :(得分:2)
临:
您可以节省流量。 jQuery和co。能够在交通上占用大量空间。
Google和co。创建CDN是为了完成这项工作。如果有人能够以比这样的网络更快的速度提供此类内容。
很长一段时间,浏览器无法从一个域加载两个以上的Javascript文件。如果您使用google.com上的jQuery,您的浏览器将能够同时加载其他特定于应用程序的文件。如果今天这很重要就是问题
许多人使用Google或Microsoft服务或访问通过其jQuery版本链接的网站。这意味着,您有很大机会,您的浏览器已经在某处缓存了jQuery - 加载时等待时间更短!
魂斗罗:
答案 3 :(得分:0)
访问您网站的用户已经有更好的机会获得谷歌版本的缓存,而不是您自己的托管版本。 (更快,可能)
您无需托管
您无需处理缓存(除非您使用后备方法且Google版本已关闭)
如果用户位于欧洲且您的服务器位于Fargo,他们很可能会将Google版本从更近的服务器(更快,可能更快)拉下来
保存您的带宽(付款时每一位都计算在内)
我建议您查看Html5Boilerplate,当您无法访问Google的CDN时,他们已经实施了一个很好的后备方法。