在一个典型的网页上,我加载了以下内容,所有内容都来自CDN:
从1 CDN (如果可能的话)加载这些CDN还是从不同的CDN加载这些CDN更好?这方面是否有最佳做法,还是没有区别?
发布于 2017-09-04 16:07:30
就使用一个或多个CDN而言,这并不取决于您从同一个主机名下载了多少组件,根据这个雅虎用户界面团队的文章,HTTP/1.1建议浏览器将并行下载限制在每个主机名两个。因此,使用多个CDN源是,不同的主机名应该是一个很好的实践。
例如,如果使用相关组件只是为了避免版本不匹配,例如角和角路由器,您可能希望使用相同的CDN,但是,如果每个主机名的下载量增加,则会以相同的方式创建加载泄漏(至少对于遵循规范建议的浏览器是这样的)。
使用CDN绝对是提高网站加载性能的一个好做法。但是,您应该考虑使用您可以找到的更流行的can,这将增加您从使用相同文件的不同站点获得所使用文件的缓存版本的机会,这将进一步提高网站的加载性能。
正如@JeffPuckett在评论中所指出的,当前浏览器对每个服务器/代理的同时下载有更高的限制: 火狐2: 2火狐3+:6 Opera 9.26: 4 Coa12:6 Safari 3: 4 Safari 5: 6 IE 7: 2 IE 8: 6 IE 10: 8 Chrome: 6 参考文献:https://stackoverflow.com/a/985704/4488121
发布于 2017-09-13 05:20:45
恐怕这个问题没有什么能解决的办法,就像通常发生的那样。这是我的两分钱。在反对关注同步连接和浏览器/标准的数量时,我想从不同的角度来看待它。
对用户和服务器来说,最重要的是页面加载时间和服务可用性。最快的加载时间是从缓存加载。您的用户使用来自特定CDN的特定文件的次数越多,缓存命中的可能性就越大。
基于这个目标,
我会将那些您可以发现can和使用统计数据流行的库进行分类,其他的就不太流行了--尽管您可以根据其他建议自己决定在本地托管什么。
对于统计数据,您可能需要使用类似于w3techs的内容:
在“很少高流量”和“许多低流量”站点之间进行选择,可以基于对网站受众的一些有教养的猜测,但是如果您想要确保,可以尝试测量缓存命中率。这不是简单的,但这里有一些想法。
现在,对于版本,您应该可以选择更改版本。如果您决定使用第一个选项“几个高流量”站点,那么绝对值得检查它们使用的CDN库的哪个版本。否则,对于“许多低流量”选项,最流行的版本更可取。同样的w3tech应该有统计。
这听起来可能很麻烦,但很少(如果不是一次的话),因为统计数据的变化往往非常缓慢。
发布于 2019-10-30 14:56:16
接受的答案是如此过时,雅虎的参考文件是在2007年发布的,它与HTTP/1.1特别相关。请参阅HTTP/2:是否使用HTTP/2提高了每个主机的连接限制?的正确信息
我会说正好相反。如果支持HTTP/2,最好从同一主机加载越来越多的资源,在这种情况下是CDN。对HTTP/2的浏览器支持是相当高,在未来几年内将达到接近100% (如果与HTTP/3相结合)。
此外,使用更多CDN加载文件也有相关的成本:
现在,回答你的具体问题:
:从1 CDN或不同CDN加载这些CDN更好吗?,因为现在所有CDN默认都支持HTTP/2,如果可能的话,建议使用一个CDN来获取更多的内容。顺便说一句,有一个CDN,PageCDN,就是建造只是为了解决这个附带的域切分问题。它们在单个主机上提供javascript库、字体和专用CDN,以最大限度地利用单个HTTP/2连接。
有这方面的最佳实践吗?最佳实践是: 1.减少DNS查找。2.减少连接。比起更多的CDN/主机,更喜欢更少的CDN/主机。3. 不要捆绑文件。许多开发人员会推荐您打包文件,但Google V8团队并不推荐这样做。4.使用预连接元标签来节省连接时间。
没有区别吗?是的,使用CDN会产生不同的效果,因为它可以使用其他网站的浏览器缓存来实现您的目的,这样即使是第一次访问者也能获得非常快的页面加载。
https://stackoverflow.com/questions/46039202
复制相似问题