Middle+
Brauzer HTML faylını necə təhlil edir?
sobes.tech Süni İntellekt
AI-dan cavab
Brauzer HTML faylını bayt-bayt oxuyur. Faylın kodlamasına əsasən simvol axını qurulur. Bu axın analiz edilir və tokenlər (açılış və bağlanış etiketi, mətn, şərh, doctype) şəklində formalaşır. Tokenlər nodlara (nodes) çevrilir və ağac şəklində birləşdirilir: Document Object Model (DOM).
Parsing prosesi aşağıdakı mərhələlərdən ibarətdir:
- Baytların oxunması: Brauzer bayt axını alır.
- Kodlamanın müəyyən edilməsi: Faylın kodlaması müəyyən edilir (məsələn, UTF-8, Windows-1251). Bu, HTTP başlıqları,
<meta>teqləri və ya avtomatik aşkarlama ilə ola bilər. - Simvol şəklinə çevrilmə: Baytlar, müəyyən edilmiş kodlamaya uyğun olaraq simvol şəklinə çevrilir.
- Tokenləşdirmə: Simvol axını tokenlərə bölünür.
<!-- Token nümunəsi --> <p> // Token: açılış teqi "p" Salam, // Token: mətn "Salam, " dünya! // Token: mətn "dünya!" </p> // Token: bağlanış teqi "p" - AST (DOM Ağacı) qurulması: Tokenlərin ardıcıllığından istifadə etməklə, nodlar ağacı (DOM) qurulur. Brauzer açıq teqlər üçün yığın (stack) saxlayır; bağlanış teqi ilə qarşılaşdıqda, o, yığındakı müvafiq açıq teqi bağlayır və onun nodunu ağaca əlavə edir.
<!-- Sadə DOM strukturu üçün: --> <!DOCTYPE html> <html> <head> <title>Nümunə</title> </head> <body> <p>Mətn</p> </body> </html> // DOM ağacı, teqlərin iç-içə yerləşməsini əks etdirən struktur olacaq. // Məsələn, "p" nodu "body" nodunun övladı olacaq. - Skript və üslubların analiz edilməsi: HTML parsing zamanı, brauzer
<script>və<link>/<style>teqləri ilə qarşılaşır.<script>: Standart olaraq, HTML parsing dayandırılır, skript yüklənir, analiz edilir və icra olunur. İcra etdikdən sonra, HTML parsing davam edir.asyncvədeferatributları bu davranışı dəyişir.asyncskripti asinxron şəkildə icra edir, parsingi bloklamır.deferskriptin icrasını HTML parsing tamamlanana qədər təxirə salır.<link>/<style>: CSS, HTML ilə paralel şəkildə analiz edilir və CSS Obraz Modeli (CSSOM) yaradılır.<link>-in<script>-dən əvvəl olması, skriptin icrasını gecikdirə bilər, çünki brauzer CSSOM-un qurulmasını gözləyə bilər, beləliklə, üslubların düzgün tətbiqi üçün skript icrasından əvvəl təmin edilir.