聊瀏覽器渲染過程
網(wǎng)絡(luò)
-
DNS(domain name system)
- Host
- 緩存
- 瀏覽器 操作系統(tǒng)(hosts) ISP
- 緩存
- Host
-
TCP(Transmission Control Protocol)
- 三次握手
- A -> B (a ->) SYN(x) synchronization(同步)
- B -> A (b <- & b -> ) SYN(y) & ACK(x + 1)
- A -> B (a <-) ACK(y + 1)
- http
- 四次揮手
- A -> B FIN(x)
- B -> A ACK(x + 1)
- B -> A FIN(y)
- A -> B ACK(y + 1)
- 三次握手
-
HTTP(request & response)
- HEAD
- method
- url
- content-type
- connection: keep-alive
- Accept(req)
- Host(req)
- statusCode(res)
- set-cookie(res)
- content-encoding
- HEAD
-
瀏覽器渲染
- HTML解析過程
- 下載HTML -> 解析HTML -> 下載CSS -> 解析CSS -> 下載JS -> 執(zhí)行JS(阻塞)
- 阻塞(js要操作DOM)
- async defer (搜script async vs defer)
- css 可以阻塞 js 執(zhí)行
- 渲染過程
- DOM + CSSOM -> Render Tree(節(jié)點(diǎn)樣式,對應(yīng)關(guān)系) -> Layout(弄清每個(gè)對象在網(wǎng)頁上的確切大小和位置) -> Paint(將渲染樹轉(zhuǎn)換成屏幕上的像素) -> Composite(處理透明元素和重疊元素的顯示)
- 觸發(fā)reflow
- 讀(offsetTop,scrollTop,clientTop,getComputedStyle())
- 只觸發(fā)reflow(查csstriggers)
- 不設(shè)計(jì)到布局更改 transform,color, border-style, background, outline, box-shadow
- HTML解析過程