在典型的网页上,我从CDN加载以下内容:jQuery的角引导Icomoon一些Angular插件从1 CDN(如果可能)或从不同的CDN加载这些更好吗?是 …
现在开始询问大多数浏览器支持HTTP2的一个好问题是:我的CDN是否支持HTTP2?如果是这样的话,很可能通过1个CDN对这些请求进行流水线操作会更快。如果其他CDN尚未缓存,它还可以保存DNS查找。如果CDN支持推送它也可以提高速度,因为很多这些库需要多个文件。
您应该尽量避免使用CDN: -
浏览器一次限制为6个请求,因此如果您一次发出多个请求,它们将在队列中并且将花费更多时间,因此请尽量减少请求数。
建议 -
用户 鲍尔 / 咕噜 要么 的WebPack 在你的申请中 -
如果您对bower / grunt有任何疑问,我可以帮助您。
我担心通常会发生这个问题没有灵丹妙药的答案。这是我的2美分。我反对专注于同时连接和浏览器/标准的数量,我想从不同的角度来看待它。
对用户和服务器最重要的是页面加载时间和服务可用性。最快的加载时间是来自缓存的加载。更多 的 您的 强> 用户使用 的 具体文件 强> 来自a 的 特别是CDN 强> ,缓存命中的机会越多。
基于这个目标,它是有意义的
我会将您可以找到CDN的库和流行使用情况的统计数据分类,其他的 - 不是很多,尽管您可以根据其他情况自行决定在本地托管什么 建议 。
对于统计数据,您可能希望使用类似w3techs的东西:
根据对网站受众的一些有根据的猜测,可以在“少量高流量”和“多少低流量”网站之间进行选择,但如果您想确定,可以尝试测量缓存命中率。这不是直截了当的,但在这里我们一些 理念 。
现在,对于版本,您是否可以选择更改版本。如果您决定使用第一个选项“少数高流量”网站,那么绝对值得检查他们使用的CDN中的哪个版本的库。否则,对于“许多低流量”选项,最流行的版本更可取。同样的w3tech应该有 统计 。
这可能听起来很麻烦,但它很少(如果不是一次)完成,因为统计数据往往变化很慢。
使用CDN是其他人已经回答的方法 - 但添加更多CDN只会扩展到每个CDN的DNS查找时间可能开始占据总下载时间的程度。
因此,尝试加载至少2到6个资源来尝试最大化每个CDN可能是最好的权衡。
最佳做法是同时使用CDN和后备(本地文件)。要回答您的问题,您应该使用多个CDN路径,就好像一个CDN已关闭,至少其余CDN已启动并正常工作。对于下行CDN,后备将进行锻炼。
简而言之,这就是我在项目中遵循的最佳实践。
您应该避免在单个页面中直接使用多个CDN链接,因为它会影响性能。您可以尝试使用以下代码添加多个CDN链接
bundles.UseCdn = true; bundles.Add(new ScriptBundle("~/bundles/jquery", @"//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.js" ).Include( "~/Scripts/jquery-{version}.js"));
它将多个文件组合到一个文件中,减少了检索和显示网页所需的服务器请求数。
您可以轻松地使用cdn来获取数据