Sobes.tech
Middle+

Brauzer HTML faylini qanday tahlil qiladi?

sobes.tech AI

AIdan javob

Brauzer HTML faylini baytma-bayt o‘qiydi. Faylning kodlashiga asoslangan holda, belgi oqimi quriladi. Bu oqim tokenlarga (ochilish va yopilish teg, matn, izoh, doctype) ajratiladi. Tokenlar nodlarga (nodes) aylantiriladi va daraxtga bog‘lanadi: Document Object Model (DOM).

Parsing jarayoni quyidagi bosqichlardan iborat:

  1. Baytlarni o‘qish: Brauzer bayt oqimini oladi.
  2. Kodlashni aniqlash: Faylning kodlash turi aniqlanadi (masalan, UTF-8, Windows-1251). Bu HTTP sarlavhalari, <meta> teglar yoki avtomatik aniqlash orqali bo‘lishi mumkin.
  3. Belgilar shaklida o‘zgartirish: Baytlar aniqlangan kodlashga muvofiq belgilar shaklida o‘zgartiriladi.
  4. Tokenlash: Belgilar oqimi tokenlarga bo‘linadi.
    <!-- Token misoli -->
    <p> // Token: ochilish teg "p"
      Salom, // Token: matn "Salom, "
      dunyo! // Token: matn "dunyo!"
    </p> // Token: yopilish teg "p"
    
  5. AST (DOM daraxti) qurish: Tokenlar ketma-ketligidan foydalanib, nodlar daraxti (DOM) quriladi. Brauzer ochiq teglar uchun stak (stack) tutadi; yopilish tegini ko‘rib, u stakdagi mos tegni yopadi va uning nodini daraxtga qo‘shadi.
    <!-- Oddiy DOM tuzilmasi uchun: -->
    <!DOCTYPE html>
    <html>
      <head>
        <title>Misol</title>
      </head>
      <body>
        <p>Matn</p>
      </body>
    </html>
    
    // DOM daraxti, teglarning ichma-ich joylashishini aks ettiradigan tuzilishga ega bo‘ladi.
    // Masalan, "p" tuguni "body" tugunining bolasi bo‘ladi.
    
  6. Skriptlar va uslublarni tahlil qilish: HTML parsing jarayonida, brauzer <script> va <link>/<style> teglarini uchratadi.
    • <script>: Standart holatda, HTML parsing to‘xtatiladi, skript yuklanadi, tahlil qilinadi va bajariladi. Bajarilgach, HTML parsing davom etadi. async va defer atributlari bu xatti-harakatni o‘zgartiradi. async skriptni asinxron tarzda bajaradi, parsingni to‘xtatmaydi. defer skriptni HTML parsing tugaguncha kechiktiradi.
    • <link> / <style>: CSS, HTML bilan parallel ravishda tahlil qilinadi va CSS Ob'ekt Modeli (CSSOM) yaratiladi. <link>'ning <script>dan oldin bo‘lishi, skript bajarilishini kechiktirishi mumkin, chunki brauzer CSSOM qurilishini kutishi mumkin, shunda uslublar to‘g‘ri qo‘llanilishini ta'minlash uchun.