浏览器的资源并发亲试

前几天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个请求。

 

总结:

控制好页面初始加载请求数量,适当的合并,如项目首屏用到图片,应该以懒加载的方式。
还有如果网络稳定流畅的情况,可以通过访问不同域名的资源来提高请求的并发数量

posted @ 2016-11-22 21:25  skyweaver  阅读(413)  评论(0编辑  收藏  举报