Perangkat Browser Web Modern Chrome (Bagian 3/4)

Ini adalah bagian 3 dari 4 tentang cara kerja browser. Sebelumnya kita telah melihat arsitektur dan navigasi multiprosesor. Dalam posting ini, kita akan melihat apa yang terjadi di dalam proses * renderer.





Bagian 1

Bagian 2

Bagian 3 (saat ini)

Bagian 4



Tentang fitur terjemahan
  • , , .. () . โ€” , - . : *-, *-. , , , , , .
  • , , , , . "" , .


*- . *- , . , "" Web Fundamentals .



*- -



*- , . *- , . JavaScript , web worker *- (service worker). *- (compositor threads) *- (raster threads) *- .



*- โ€” HTML, CSS JavaScript -, .



gambar



1: *- , worker , *-, *-





= DOM



HTML-, (HTML) Document Object Model (DOM).



DOM โ€” , API, - JavaScript.



HTML- DOM HTML. , HTML . , </p> HTML. , Hi! <b>I'm <i>Chrome</b>!</i> ( b i) , Hi! <b> <i></i></b><i>!</i>. , HTML . , , " " HTML.



=



- , , CSS JavaScript. . , , DOM, "preload scanner ". HTML- , <img> <link>, preload scanner , HTML-, *- *-.



gambar

2: HTML DOM



= JavaScript



HTML- <script>, HTML , JavaScript . ? JavaScript , , document.write(), DOM ( HTML ). HTML , JavaScript, HTML-. , JavaScript, V8 .





, - , . JavaScript document.write(), async defer <script>. JavaScript . JavaScript , . <link rel="preload"> โ€” , , . Resource Prioritization โ€“ Getting the Browser to Help You.





DOM , , , CSS. CSS DOM. , CSS-. CSS DevTools.



gambar

3: CSS



CSS, DOM . <h1> , <h2>, . , . , CSS Chrome, .



(Layout)



*- , . , . " " โ€” , , .



. DOM *- (layout tree), , x y . *- DOM, , , . display: none, *- (, visibility: hidden *-). , - p::before{content: "Hi!"}, *-, DOM-.



gambar



4:



gambar



5: DOM *-



โ€” . , , , , ; , .



CSS , . , . Chrome . , BlinkOn Conference .



gambar

6: -





DOM, . , . , , , .



, z-index, HTML, .



gambar



7: , ,



gambar



8: HTML, z-index



, *- (*-, Paint Records). *- โ€” " , , ". <canvas> JavaScript, .



gambar



9: *- *-



=



, , , . , - *-, .



gambar



10: DOM+, *- *-



, . 60 ; , . , , "" ("janky").



gambar

11:



, , , , JavaScript.



gambar



12: , - JavaScript



requestAnimationFrame() JavaScript () . JavaScript. JavaScript Web Workers, .



gambar



13: JavaScript



* (Compositing)



= ?



gambar



14.



, , , , ? (rasterizing).



, viewport. , . Chrome , . , * (compositing).



= *



* โ€” , , "-" (*-, compositor thread). , , , โ€” . , .



, DevTools Layers.



gambar



15. *



=



, , *- *- ( "Update Layer Tree" Performance DevTools). , (, -), , , will-change CSS.



gambar



16. *- (layout tree) *- (layer tree)



, * , , . , , . Stick to Compositor-Only Properties and Manage Layer Count.



=



*- *-. *- . , , *- *- (raster threads). *- GPU.



gambar



17. *- GPU



*- *-, viewport ( ) . , , .



, *- , *- (draw quads), *- (compositor frame).



*- (draw quads)



, .



*- (compositor frame)



*-, .



IPC- *- *-. *UI- *- *- . *- GPU . , *- *- GPU.



gambar



18. *- *-. *- GPU



, . *- JavaScript. . , .





*. , .



*- , , , , .



Bagian 1

Bagian 2

Bagian 3 (saat ini)

Bagian 4




All Articles