Proč Google neužívá HTML5 elementy?
Chci předělat svoje stránky do HTML5, tak jsem se chtěl poučit, jak ostatní používají HTML5 elementy. Koukal jsem na různé stránky Google, jako například jejich oficiální blog, stránky o Google atd. a zjistil jsem, že Google má sice doctype ve formátu HTML5, ale jinak elementy HTML5 jako <article>, <nav>, <header>, <footer>, <section>, <aside> atd. na svých stránkách neužívá a místo toho používá obyčejné <div>. Proč, když HTML5 specifikace už tu je roky?
Odpovědi
Diskuze
<!--[if lt IE 9]> <script src="dist/html5shiv.js"></script> <![endif]-->
Proč Google tyto elementy nepoužívá nevím.
1. Ten shiv v podstatě jen udělá CreateElement a nastaví styl pro těch pár tagů, o nějakém poklesu výkonu nemůže být řeč. Navíc se uplatní jen u IE do verze 8, jinak se vůbec nevloží:
<!--[if lt IE 9]> <script src="dist/html5shiv.js"></script> <![endif]-->
O požadavku podpory JS píšu 12.06.2013 17:19, JS je vyžadován stejně.
2. Ale hlavně Google stránky JSOU v HTML5! Jen nepoužívají některé jeho elementy, ale jsou v HTML5, používají totiž HTML5 doctype: <!doctype html>.
Ty odpovídáš na otázku, proč stránky Google nejsou v HTML5, ale na to nemá smysl odpovídat, protože stránky Google jsou v HTML5. Otázka byla, proč Google nevyužívá některé nové sémantické elementy HTML5.
kazda js manipulace dokumentu je vypocetne nakladna a do znacne miry neprijemna. nejprve se musi nacist cely dokument, je vykreslen, pak je via js upraven a pak je znovu vykreslen, s temito zmenami.
a *povzdech* cislo dva: a proc by meli pouzivat nove semanticke elementy? jediny opravdu uzitecny duvod? rad bych se jej dovedel :)
- prvně, pokud nějak rozumně zpracováváme html dokument, tak potřebujeme mít jeho kompletní strom (nebo nějakou jinou reprezentaci)
- strom je kompletní ve chvíli, kdy je celý dokument stažen a zpracován
- v tuhle chvíli je také vykreslen (i pokud byl vykreslován per partes)
- a až v tuto chvíli se dostává ke slovu js, který má dokument nějak změnit
- prakticky je odchycene window/load event a event loop dotyčného vlákna je přerušen, skočí do nějaké procedure, která provede změny, které se projeví po návratu do event loopu.
- long story made short, v tuhle chvíli se projeví změny a celá stránka je překreslena
(sidenote: i am so NOT sorry about overusing "chvíli")