[TOC]

我的回答

html -> link中的css -> 加载js

js加载看js的标签, defer和async, 都没有就是串行加载

defer是异步下载, 但是等页面加载完成再加载

async是异步下载, 并且是异步加载

参考回答

页面加载过程

  1. 浏览器根据DNS服务器得到域名的IP地址
  2. 向这个IP的机器发送HTTP请求
  3. 服务器收到、处理并返回HTTP请求
  4. 浏览器得到返回内容

    页面渲染流程

  5. 解析HTML文件,构建DOM树,同时浏览器主进程负责下载css文件

  6. css文件下载完成,解析css文件成树形的数据结构style sheet,然后结合DOM树合并成RenderObject树
  7. 布局RenderObject树(Layout/reflow), 负责RenderObject树中的元素的尺寸,位置等计算
  8. 绘制RenderObject树(paint),绘制页面的像素信息
  9. 浏览器主进程将默认的图层和复合图层交给GPU进程,GPU进程再将各个图层合成,最后显示出页面

    处理脚本和样式表的顺序

    脚本

    网络的模型是同步的。网页作者希望解析器遇到