„Ajťák“ Joker, osobní stránky

Nacházíte se v části webu: Hlavní stránka › Zápisník

Bavíme se s dynamickým HTML

napsal Joker, 26.11.2007 21.59:45, naposledy upraveno 26.11.2007 22.15:53

Nejdříve co budeme potřebovat: Základem je HTML, okořeňte kaskádovými styly a přidejte větší množství Javascriptu. Pro zpestření dochuťte zpracováním toho všeho v nějaké aplikaci. Přidejte renderovací jádro Internet Exploreru a programátora/kodéra. Pro větší porci zábavy přidejte programátorů více.

Postup: To je potřeba vytvořit něco jako nápovědu do .chm souboru. Kdo nezná, .chm soubor je něco jako webové stránky- HTML dokumenty, ke kterým se přidá funkce vyhledávání, rejstřík a celé se to "zabalí" do jednoho souboru, který má právě tu příponu .chm (= Compiled HTML Manual). Ten soubor se potom dá "spustit" přímo ve Windows a prohlíží se ve zvláštním prohlížeči, což je ovšem jen jinak obalené jádro Internet Exploreru.

Do toho se tedy z vesela pustí Kodér. Protože je potřeba mít určité společné části a není k dispozici webserver, naprogramuje Javascriptový základ, který webserver částečně nahradí. Zkusí se pár testovacích stránek a vyšperkuje se to kaskádovými styly. Kodér má velkou radost, jak to pěkně funguje. Současně se píší texty dokumentů, šablonky pro dokumenty a Programátor píše aplikaci, která zkompiluje texty a šablonky a vyrobí požadovaný soubor. Po různých peripetiích do sebe nakonec vše zapadne, soubor je hotov, texty jsou napsané, kompilátor kompiluje, Javascripty Javascriptují, kaskádové styly stylují, vypadá to hezky a všichni jsou spokojení.

Tedy skoro. Po čase se samozřejmě zjistí, že by bylo potřeba přidat či upravit některé texty, Kodér má pár nápadů na vylepšení vzhledu a skriptů a Programátor má nápady na vylepšení kompilující aplikace. Texty se napíší, kodér dostane novou verzi kompilující aplikace, poupraví kaskádové styly, vylepší Javascripty, zkompiluje a voilá, je na světě nová verze, ještě o 12,4% lepší, než ta předch... jenže nefunguje, vzhled stránky je rozhozený.

Nu což, nejspíš nějaký ten styl či prvek dělá neplechu. Zkusíme to předělat.
Hmm, pořád nic, zkusíme to předělat. Hmm, pořád nic, zkusíme to předělat. Hmm, pořád nic, zkusíme to předělat. Hmm, pořád nic, zkusíme to předělat. (atd.)
...

To je nějaký divný. Zkusím porovnat vstupní zdrojáky... "Soubory jsou shodné!" ...no a je to jasný, tak to bude problém v něčem, co tam dodává Javascript. A protože Kodér není žádný n00b či lama, umí si vytáhnout hotový zdroják včetně kódu vygenerovaného Javascriptem, zadáním kouzelné adresy (poznámka: funguje pro Internet Explorer)

javascript:'<xmp>'+document.getElementsByTagName("html")[0].outerHTML+'</xmp>'

Hmmm, divné, moc divné... není tam vidět nic, co by mohlo rušit. Zkusíme udělat pár změn... a nic. Pár jiných změn... a nic. Ještě další změny... nic, stále stejné.

Jednou z důležitých vlastností programátora je schopnost odolat nutkání prohodit klávesnici monitorem, jinak se programování může dost prodražit. Lepší je logicky popřemýšlet. No, tak prostě nahraju CSS a Javascripty z předchozí verze. A zkusím stránku, jejíž kód se nezměnil. I když, k čemu to je dobré, když to fungovalo předtím, tak to přeci musí fungovat i teď.

Přepsání souborů, vytvoření zkompilovaného dokumentu... pohled na rozhozený vzhled stránky. To snad není možný... TO SNAD NENÍ MOŽNÝ!

Nastane-li takováto situace, je příčina chyby celkem jasná. Na 99% je to nějaká úplná blbost, kterou máte celou dobu před očima, jen je to tak samozřejmé, že to prostě nevidíte. Dobře, co se zkusit podívat do zdrojáku, ovšem do toho zkompilovaného a ne Javascriptem, ale normálně? I když, jak by tam mohlo být něco, co ovlivní vzhled stránky a přitom to není vidět v kódu stránky získaném Javascriptem?

Mohlo.

Při pohledu na kód přes Javascript nejsou totiž vidět komentáře. A nová verze kompilující aplikace vkládala do každé stránky tzv. "Mark of the Web" (viz např. MSDN) komentář. Říkáte si, jak může komentář ovlivnit vzhled stránky? Může. Pokud se automaticky vkládá na první řádek. Internet Explorer má totiž dva režimy: Standardní a zpětně kompatibilní (tzv. quirks). Ve kterém režimu stránku zpracuje zvolí podle toho, zda na prvním řádku dokumentu najde platnou definici typu dokumentu (<!DOCTYPE...), pak je to standardní režim, nebo nenajde, pak je to zpětně kompatibilní. No a pokud je stránka odladěná pro standardní režim a při zpětně kompatibilním se jinak zpracují kaskádové styly...

Žádost na Programátora, zda by se komentář mohl vkládat někam jinam, než na první řádek.
Úprava aplikace.
Všecho funguje správně.

Happy end.

Toť jeden z příběhů, kterými jsou odhaduji kolegové vývojáři zásobeni :-)


K tomuto příspěvku nejsou žádné komentáře

Přidat nový komentář