前几天ali一个视频面试,给问到一个问题 为什么图片要分多个域名? 我开始以为他问我cdn,然后他再强调了一遍,为什么要分多个域名?
然后我认真想了想 不知道为什么,之后找我师傅叶小钗问了一下,他回答说一个域名下载有限,于是乎,我抽空写了一个demo。(只测试了pc和ios的 safari)
1、首先我准备了1张10M的图片 ,一个5M的js 和一个4M的css, 各复制了10次 改了10个不一样的名字。
2、准备了 a.com 和b.com 2个域名
同域名pc 和手机的并发情况
pc(chrome): 同一域名下 能同时并发6个 请求。
如果单纯 js, 同一时间也只能发6个。
由此可见,图片的请求,是会阻塞页面js的请求的, 所以移动端需要控制好首屏的请求数量, 会请求文件的大小(例如如果框架太大会阻塞页面渲染)
手机:
只请求js
只请求css
可以看出手机上同一时间只能同时请求4个资源。
不同域名pc 和手机的并发情况
pc:
css
手机:
css
可以看出 pc上不同域名并发是各6个请求,2个域名一共加起来是12个请求。
手机上不同域名并发 各4个, 2个域名一共加起来是 8个请求。
总结:
控制好页面初始加载请求数量,适当的合并,如项目首屏用到图片,应该以懒加载的方式。
还有如果网络稳定流畅的情况,可以通过访问不同域名的资源来提高请求的并发数量