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:
- Baytlarni o‘qish: Brauzer bayt oqimini oladi.
- Kodlashni aniqlash: Faylning kodlash turi aniqlanadi (masalan, UTF-8, Windows-1251). Bu HTTP sarlavhalari,
<meta>teglar yoki avtomatik aniqlash orqali bo‘lishi mumkin. - Belgilar shaklida o‘zgartirish: Baytlar aniqlangan kodlashga muvofiq belgilar shaklida o‘zgartiriladi.
- 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" - 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. - 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.asyncvadeferatributlari bu xatti-harakatni o‘zgartiradi.asyncskriptni asinxron tarzda bajaradi, parsingni to‘xtatmaydi.deferskriptni 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.