HTML — Web Platformaning Asosi
HTML'ni Web Platformaning asosi sifatida o'rganing: semantika, brauzer parsing, DOM qurilishi va HTML nima uchun error bermasligi.
4-dars
HTML — Web Platformaning Asosi
Ko'pchilik HTML'ni faqat "markup language" yoki "taglar to'plami" deb o'ylaydi. Aslida esa HTML — bu brauzer bilan kelishuv, platforma API, va ma'no (semantics) uzatuvchi til.
Bu darsda biz HTML'ni:
- dizayn vositasi emas,
- UI framework emas,
- "frontend boshlanishi" emas,
balki Web Platformaning eng asosiy qatlami sifatida ko'ramiz.
1. HTML nimani HAL qiladi?
HTML'ning vazifasi ko'rinish chizish emas. HTML muammoni hal qiladi:
HTML nimani hal qiladi?
Kontent strukturasi
- Bu nima?
- Bu nimaga tegishli?
- Qaysi qismi muhim, qaysisi yordamchi?
Ma'no (Semantics)
- Bu sarlavhami?
- Bu navigatsiyami?
- Bu maqolami?
- Bu tugmami yoki shunchaki matnmi?
Brauzer va boshqa agentlar bilan kelishuv
- Brauzer
- Screen reader
- Search engine
- Voice assistant
- Reader mode
- Print mode
HTML — bu "mening sahifam nimani anglatadi" degan deklaratsiya.
- CSS — qanday ko'rinadi
- JS — qanday harakat qiladi
- HTML — bu nima o'zi
2. HTML — bu dizayn emas, ma'no
❌ Noto'g'ri fikr
"HTML sahifani chizadi"
Yo'q. HTML hech narsani chizmaydi.
HTML shunchaki shuni aytadi:
<h1>Bu sarlavha</h1>
<p>Bu paragraf</p>
<button>Bu tugma</button>
Brauzer esa o'z default UI qoidalari asosida buni ko'rsatadi.
Agar brauzer dizaynini o'zgartirsak — HTML o'zgarmaydi. Agar CSS o'chsa — HTML hali ham ishlaydi.
Bu juda muhim:
HTML UI emas, HTML meaning layer
3. Browser HTML'ni qanday parse qiladi?
HTML yozilganida brauzer uni qadam-baqadam o'qiydi.
1-qadam: Tokenization
Brauzer matnni belgilar oqimi sifatida o'qiydi va tokenlarga ajratadi:
<div>→ start tag</div>→ end tagtext→ text node<!-- -->→ comment
HTML bu bosqichda syntax jihatdan qattiq emas.
2-qadam: Tree Construction
Tokenlardan DOM tree quriladi.
Brauzer HTML'ni yuqoridan pastga qarab o'qiydi va:
- ochilgan taglarni stack'ga qo'yadi
- yopilganini topganda chiqaradi
Agar xato bo'lsa-chi?
👉 Brauzer o'zi to'g'rilaydi.
4. Nega HTML Error Bermaydi? (Parser Progress Bilan)
HTML'da "Error" Degan Tushuncha Bormi?
Qisqa javob: yo'q. To'g'rirog'i: HTML'da error tashlash mexanizmi yo'q.
HTML:
- exception tashlamaydi
- execution'ni to'xtatmaydi
- "syntax error" bermaydi
Buning o'rniga HTML'da bitta prinsip bor:
Parse qil → DOM qur → Render qil
Qanday bo'lishidan qat'i nazar.
HTML Parsing — Progressiv Jarayon
HTML bir martalik tekshiruv emas. U progressive parsing bilan ishlaydi.
Brauzer HTML'ni:
- orqaga qaytmasdan
- fayl to'liq kelishini kutmasdan
- yuqoridan pastga qarab
o'qiydi.
Bu shuni anglatadi:
Brauzer qarorni real vaqtda qabul qiladi.
Real Misol: Xato HTML
<p>
<div>Salom</p>
Bu HTML noto'g'ri. Endi brauzer qanday progress bilan ishlashini ko'ramiz.
1-Bosqich: Tokenization
Brauzer belgilar oqimini tokenlarga ajratadi:
<p>→ start tag token<div>→ start tag tokenSalom→ text token</p>→ end tag token
Hali bu bosqichda:
- error yo'q
- mantiq tekshirilmaydi
- faqat tokenlar bor
2-Bosqich: Tree Construction (Stack bilan)
Brauzer DOM qurishni boshlaydi.
2.1 <p> keldi
- stack:
[p] - DOM:
<p></p>
2.2 <div> keldi
⚠️ MUHIM NUQTA
HTML qoidasi:
<p> ichida <div> bo'lishi mumkin emas
Shu sababli parser:
<p>ni implicit yopadi- stack'dan chiqaradi
<div>ni yangi tugun sifatida ochadi
Natija:
<p></p>
<div></div>
- stack:
[div]
2.3 Salom keldi
<div> ichiga qo'shiladi
<div>Salom</div>
2.4 </p> keldi
Parser tekshiradi:
- stack tepasida
<div>bor <p>yo'q
Qoidaga ko'ra:
- mos kelmagan end tag → e'tiborsiz qoldiriladi
Hech qanday error yo'q.
3-Bosqich: DOM Tayyor
Yakuniy DOM:
<p></p>
<div>Salom</div>
Bu:
- valid DOM
- render qilinadi
- foydalanuvchi kontentni ko'radi
Nega Parser "To'xtab Qolmaydi"?
Chunki HTML parser:
- fail-safe
- error-tolerant
- forward-only
Agar parser to'xtasa:
- internetning yarmi ochilmaydi
- eski saytlar o'ladi
- web ishonchsiz bo'ladi
HTML Parser Qarorlari — Oldindan Belgilangan
Bu "brauzer fantaziyasi" emas.
HTML standartida:
- qaysi tag qaysini yopishi
- qaysi end tag tashlab yuborilishi
- qaysi joyda auto-close bo'lishi
qat'iy yozilgan.
Shuning uchun:
- Chrome
- Firefox
- Safari
bir xil natija beradi.
5. DOM nima va HTML bilan aloqasi
HTML — bu matn. DOM — bu xotiradagi obyektlar daraxti.
HTML ≠ DOM
- HTML — static source
- DOM — runtime representation
Misol:
<div id="app"></div>
Brauzer buni quyidagicha DOM'ga aylantiradi:
{
type: "div",
id: "app",
children: []
}
JavaScript HTML bilan emas, DOM bilan ishlaydi.
Shu sababli:
- JS HTML'ni o'zgartirmaydi
- JS DOM'ni o'zgartiradi
- HTML fayl o'zgarmaydi, sahifa esa o'zgaradi
6. HTML platforma API sifatida
HTML'ni shunday ko'rish kerak:
HTML — bu browser API contract
Misollar:
<a>→ navigation API<form>→ network API<input>→ state + validation API<video>→ media API<details>→ interaction API
Ko'p funksiyalar JS'siz ham ishlaydi:
- Enter bosish
- Tab navigation
- Accessibility
- Validation
- History
Frameworklar kelib-ketadi. HTML API esa 30 yildan beri ishlayapti.
7. HTML ≠ UI, HTML = semantics + meaning
UI — bu natija, HTML — bu ta'rif.
Bir xil HTML:
- brauzerda ko'rinadi
- screen reader'da o'qiladi
- Google tomonidan indekslanadi
- Reader mode'da qayta formatlanadi
- Print'da boshqa ko'rinadi
Agar HTML noto'g'ri yozilgan bo'lsa:
- SEO yomon
- Accessibility yomon
- Performance yomon
- UX yomon
8. Xulosa
Bu darsdan olinadigan asosiy fikrlar:
- HTML dizayn emas
- HTML UI emas
- HTML JS'ga xizmatkor emas
- HTML — Web Platformaning poydevori
HTML'ni to'g'ri tushungan odam:
- frameworkdan qo'rqmaydi
- SSR / CSR farqini tushunadi
- accessibility'ni avtomatik oladi
- SEO'ni "plugin" bilan emas, to'g'ri struktura bilan qiladi