现代Web浏览器可并行与不可并行下载的Web资源类型问询
现代Web浏览器的资源并行下载规则
可并行下载的Web资源类型
- 带有
async或defer属性的<script>标签加载的JavaScript文件 - 通过
<link rel="stylesheet">直接引入的CSS文件 - 各类图像资源(包括
<img>、<picture>、<svg>标签加载的资源,以及CSS背景图) @font-face声明的字体文件- 音频、视频等媒体资源
- 第三方域名下的各类资源(如广告脚本、统计工具脚本,不受同域并行数量限制的影响)
- 通过
<link rel="preload">显式指定预加载的资源
无法并行下载的Web资源类型
- 通过
@import语法引入的CSS文件:这类资源必须等待主CSS文件下载并解析完成后才会触发下载,无法与主CSS或其他资源并行加载 - 未添加
async/defer属性的<script>标签:浏览器会暂停HTML文档解析,优先下载并执行该脚本,期间阻塞后续所有资源的并行下载 - HTML文档的串行解析依赖:HTML解析是单线程串行执行的,
<head>内的阻塞资源未处理完成时,<body>区域的资源无法提前启动并行下载 - 阻塞脚本内动态插入的资源:比如通过
document.write在阻塞脚本中添加的资源,必须等待脚本执行完毕后才会触发下载,无法与其他资源并行 - 同步AJAX请求:同步XMLHttpRequest会阻塞浏览器的事件循环,期间无法并行下载其他资源
内容的提问来源于stack exchange,提问作者howard_9
相关产品推荐
相关产品推荐

