Middle
Kaip naršyklė apdoroja tinklalapį?
sobes.tech AI
Atsakymas iš AI
Vebpuslapio apdorojimo procesas naršyklėje gali būti suskirstytas į kelis etapus:
-
Užklausos ir ištekliaus gavimo etapas:
- Vartotojas įveda URL į adreso juostą arba paspaudžia nuorodą.
- Naršyklė siunčia HTTP užklausą serveriui.
- Serveris apdoroja užklausą ir siunčia atsakymą, dažniausiai turintį HTML dokumentą.
-
Sintaksės analizė (Parsing):
- Naršyklė gauna HTML dokumentą baitais.
- Šie baitai dekoduojami į simbolius pagal nurodytą koduotę.
- HTML parseris analizuoja dokumentą simboliais ir kuria DOM medį (Document Object Model). DOM atvaizduoja dokumento loginę struktūrą.
- Suradęs
<link>(CSS) arba<script>(JavaScript) žymes, naršyklė pradeda šių išteklių atsisiuntimą paraleliai su HTML analizavimu.
-
CSSOM kūrimas:
- CSS parseris analizuoja
<style>žymių,<link>žymių ir inline stilių CSS taisykles. - Remiantis šiomis taisyklėmis kuriamas CSSOM medis (CSS Object Model), kuris apima visus stilius kiekvienam puslapio elementui.
- CSS parseris analizuoja
-
Render medžio kūrimas:
- Render medis sujungia DOM ir CSSOM. Jame yra tik tie elementai, kurie bus rodomi puslapyje, ir jų stiliai.
- Elementai, kuriems nustatyta
display: none;, į Render medį neįtraukiami.
-
Dizaino (Layout / Reflow):
- Naršyklė apskaičiuoja tikslius geometrinius dydžius ir kiekvieno elemento padėtį remiantis Render medžiu. Šis procesas vadinamas Layout arba Reflow.
- Layout vyksta pirmojo Render medžio kūrimo metu, taip pat keičiant lango dydį, pridedant ar šalinant elementus, keičiant jų stilių (pvz., dydžius, tarpines).
-
Piešimas (Painting / Repaint):
- Naršyklė nupiešia kiekvieną elementą ekrane, naudodama informaciją iš Render medžio ir Layout rezultatų.
- Piešimas taip pat gali vykti keičiant matomų elemento savybių, tokių kaip spalva, fonas, permatomumas, be jo geometrinių parametrų keitimo (vadinama Repaint).
-
Kompozicija (Compositing):
- Piešiamieji elementai gali būti sujungti į skirtingus sluoksnius optimizacijai ir animacijai.
- Šie sluoksniai vėliau sujungiami, kad būtų rodomas galutinis puslapis ekrane.
-
Skriptų vykdymas:
- Kai HTML parseris pasiekia
<script>žymę, HTML analizė laikinai sustoja (pagal numatytuosius nustatymus), ir naršyklė atsisiunčia, analizuoja ir vykdo JavaScript kodą. - JavaScript gali keisti DOM ir CSSOM, kas gali sukelti naujus Layout ir Painting žingsnius.
<script>žymės atributaiasyncirdeferįtakoja skriptų vykdymo tvarką ir laiką, leidžiant tęsti HTML analizę.
- Kai HTML parseris pasiekia
Štai apytikslė proceso vizualizacija:
HTTP užklausa
↓
HTML baitai
↓
HTML parseris
→ CSS parseris (paraleliai)
↓ ↓
DOM medis CSSOM medis
↓
Render medis
↓
Layout
↓
Piešimas
↓
Kompozicija
↓
Ekrano rodymas
JavaScript vykdymas gali įsiterpti į įvairius etapus, sukeldamas pakartotinius žingsnius:
HTML parseris + Script žymė
↓
HTML analizės pauzė
↓
Skriptų atsisiuntimas
↓
Skriptų analizė
↓
Skriptų vykdymas
↓
(Gali keisti DOM/CSSOM → sukelti Layout/Paint)
↓
HTML analizės tęsinys