WebZdarma.cz
Martyho weblog | Proč nepoužívat XHTML se správným MIME typem
↓ skok na navigaci

Proč nepoužívat XHTML se správným MIME typem

5. června 2006

Máte-li stránku s DTD označujícím ji jako XHTML, měl by být MIME typ této stránky: application/xhtml+xml (tato problematika je skvěle rozebrána u Timyho).

Jestliže však budete toto pravidlo dodržovat, může se stát, že se vaše stránky občas nezobrazí. Některé běžně používané webové prohlížeče totiž u takových stránek kontrolují, zda jsou well-formed a pokud nejsou, zobrazí chybové hlášení (a na stránku si můžete nechat zajít chuť).

Velký počet lidí z tohoto důvodu XHTML s tímto MIME typem vůbec nepoužívá a jsou spokojeni. Nemají sice opravdové XHTML stránky, ale v případě zapomenutí nějakého toho tagu se stránky alespoň nějak zobrazí.

Nedá se říci, že bych byl nějaký velký zastánce standardů, ale svůj poslední výtvor opravdu kóduji v XHTML se všemi náležitostmi (tedy i s application/xhtml+xml MIME typem). Až dnes jsem se ale prakticky setkal s nevýhodou této sestavy.

Ukázka nezobrazení stránky v případě chyby s MIME typem: application/xhtml+xml

V odpoledních hodinách jsem měl prezentaci své semestrální (zní to lépe, než opravdový název) práce, která se týkala tvorby webu. Všechno běželo podle plánu, mluvil jsem a předváděl co všechno stránky umí, až hups... V milém Firefoxu se zobrazila chybová hláška, protože jsem zapomněl na uvozovky. Nezbylo mi tedy nic jiného, než se omluvit a vysvětlit, kde vznikla chyba (ale když se tak dívám zpět, zvažuji kolik lidí opravdu pochopilo, o čem jsem mluvil).

Nic hrozného se nestalo a svou práci jsem se zdarem odprezentoval. Uvědomil jsem si ale, že kdyby byl web v ostrém provozu, už bych se trochu styděl za špatně odvedenou práci. Velmi nerad bych byl příčinou návštěvníkových starostí, kdy se mu místo skvělé (jak jinak) stránky zobrazila jen jakási podivná chybová hláška.

Rozhodně nechci tvrdit že MIME typ application/xhtml+xml je špatný. Jen je dobré si velmi dobře rozmyslet jeho uplatnění. V některých případech může být velmi užitečný (například na stránce, kde si zobrazuji náhled psaného článku ve weblogu, tímto způsobem částečně ověřuji validitu), ale v ostatních případech může také vést k naprosté nepoužitelnosti stránek (pokud se uklepnete a zapomenete ten proklatý tag ukončit).

Související: Nepřístupné XHTML - Timy

19:53:45 | Zařazeno v kategorii Webdesign

Komentáře k příspěvku

[1] 5. června 2006, 20:25 kahi napsal:

Pro zajímavost: nová Opera v případě chyby nabídne "Reparse document as HTML".


[2] 5. června 2006, 20:52 Jozef Benko napsal:

Osobne by som privítal úplne nový metajazyk -- obsahoval by väčšinu vymožeností SGML, bol by rozšíriteľný (mechanizmy umožňujúce spájanie dvoch DTD atď...), mal by prijateľnú syntax pre parsery a to podstatné -- parsery by vytvorili strom dokumentu aj pri chybnom dokumente.

To je sen, však! :o)


[3] 5. června 2006, 21:14 Rdm napsal:

Nechci být za rýpala, ale stydět by jste se měl i tak. ;o) Kontrola celého webu (prezentace) před spuštěním ve více prohlížečích je pomalu nepsaným pravidlem.


[4] 5. června 2006, 21:39 Marty napsal:

Rdm: Za rýpala jste opravdu oprávněně, měl jsem za to že jsem to kontroloval, ale...

...nebýt MIME typu, nic se nestalo :)


[5] 5. června 2006, 22:04 xergic napsal:

Už nějakou dobu svůj blog s tímhle MIME typem posílám (samozřejmě, že ne IE) a je pravda, že jsem měl pár problémů. Mám totiž základní kostru stránky - ta funguje vždycky. Zádrhel je u článků: tam když něco zapomenu uzavřít, je článek v p... prohlížeči ztracen a ozdoben chybovým hlášení. Proto občas sáhnu k serverovému řešení, i když to není (v mém případě) moc spolehlivé ;)


[6] 5. června 2006, 22:08 Acci napsal:

Jo, tohle je asi nejhorší chyba XHTML. Stačí, aby stránka z jakéhokoliv důvodu nedorazila ke klientu správně nebo aby nedejbože nastala chyba při přenosu souboru na server a prezentace firmy může být na několik hodin pro 30% uživatelů nedostupná. Pokud bych byl výrobcem prohlížeče, asi bych při nevalidním dokumentu s XHTML přepnul na HTML parser.

xergic: To je pak na čase začít používat Texy, ten ti nevalidní dokument ven nepustí. Tuším, že existuje nějaká možnost, jak ho používat i v ASP (ASP.NET?)


[7] 5. června 2006, 22:16 Mordae napsal:

Hehehe ;]
Pokud dynamicky generujes stranky na serveru (treba v PHP), mel bys pouzivat cache pro snizeni zateze serveru a navyseni rychlosti odpovedi. Pokud pouzivas cache, neni slozite pred jejim vygenerovanim zkontrolovat validitu XML dokumentu.

V mych ocich je zavazna chyba poslat neplatny dokument. Kdyz poslu ze serveru obrazek s nesmyslnym kodem, nezobrazi se, pokud poslu poskozeny applet, take se nezpracuje, tak proc by mel byt dokument XML vyjimka? Takze, neni to chyba XHTML, XML, ani zadne jine specifikace, ale pouze lenost programatoru (coz neni nic neobvykleho).


[8] 5. června 2006, 22:26 syntax_error napsal:

Jozef Benko: XML bylo navrženo právě s ohledem na to, aby parserům usnadnilo práci. Oprava a zpracování chyb už byla vedlejší záležitost. Vychází to z dlouholetých zkušeností s původním HTML, kdy většina kódu parseru byla určena ke zpracování chybných dokumentů.

Parsery XML by tak, díky striktnosti, měly být jednodušší a přenositelnější i na méně výkonná zařízení (mobily, PocketPC, ledničky...).

Ano, člověk dělá chyby, takže striktnost XHTML můžeme vidět jako významnou nevýhodu. Jenže pro programy je to výrazné usnadnění. A vyberte si: je lepší dát si pozor na pár uvozovek, nebo psát miliony řádek kódu pro případ, že tam ty uvozovky nejsou?


[9] 6. června 2006, 00:27 thingwath napsal:

Tak nějak si skromně tipnu, že je to i tvůj případ, totiž, kdybys to nepsal ručně, nikdy by se ti to nestalo. Rovněž by se ti to nestalo, kdybys ověřil validitu. Atd atd atd. SMD se taky nepájí obyčejnou páječkou a když, tak se nikdo nediví, že to jde sakra blbě.


[10] 6. června 2006, 08:05 error414 napsal:

[7] Programator by mel pocitat se vsema moznyma chybama.
Web neni jako ostatni weci (aplet, obrazek).

[8] To je moc hezke ze usnadnim praci zarizeni, ale me to vnicem nepomuze. Vypocetni sila lednicek je dostatecna na jakykoliv prohlizec mimo FF.


[11] 6. června 2006, 09:13 rarouš napsal:

V tom případě mi uniká smysl používat XHTML, když ho nejste schopný správně vyprodukovat, proč nesáhnete po HTML? XHTML je tu hlavně kvůli snadnému strojovému čtení dokumentů, tak jak je však dnes navrženo je IMHO špatně. Pokud nepotřebujete vaše webové dokumenty číst strojově, není žádný důvod (krom módnosti) XHTML používat...


[12] 6. června 2006, 09:23 von banhoff napsal:

já všechny stránky píšu jako by byly xhtml tedy se zavřenými tagy a malými písmeny (tagy) a člověku to pak přejde do krve, takže se mu tohle nestává a kód navíc vypadá mnohem líp i na pohled


[13] 6. června 2006, 17:25 Lukáš Havrlant napsal:

thingwath
"Tak nějak si skromně tipnu, že je to i tvůj případ, totiž, kdybys to nepsal ručně, nikdy by se ti to nestalo."
Ale stalo. Cožpak ty si ještě nikdy podobnou hlášku třeba u Hulána neviděl? Já ano. A pochybuji, že si svůj well.done píše ručně. Navíc (minimálně) jednou nebylo well-formed ani samotné konsorcium ;-). http://weblog.oflashi.net/images/hehe-w3c.png


[14] 6. června 2006, 18:00 marek napsal:

xhtml mi přijde spíš jako taková módní vlna... ano je to fajn, je to krok kupředu, ale vede se okolo moc zbytečnejch debat...


[15] 6. června 2006, 19:43 JPAS. napsal:

Tak zkotrolovat není zas takový problém, nebo je?
Už teď taky posílám všude application/xhtml+xml, tedy pokud to zvládá prohlížeč, takže MSIE si vystačí s text/html :-).


[16] 6. června 2006, 22:17 Vilém Málek napsal:

Autorovi spotu i všem okolo komentujícím bych doporučil, aby se zamysleli, kde je doopravdy chyba. Je chyba v XHTML, že vyžaduje zasílání správné hlavičky, nebo v prohlížeči, že parsuje XHTML obecným parserem XML a navíc neposkytuje žádné rozumné uživatelské rozhraní? HTML je aplikací SGML, ale prohlížeč ho parsuje pomocí speciálního HTML parseru - proč soudobé prohlížeče XHTML, které je speciální aplikací XML, neparsují speciálním parserem XHTML? Nezaměňujte neschopnost či lenost programátorů prohlížečů s chybou specifikace či nedostatky standardu!


[17] 6. června 2006, 22:59 melodie napsal:

Plete si tady dvě věci - HTML a XML. Zatímco to první se parsuje jako plain text, tak to druhé je XML. Je to jako by jste říkal, že waw nemůžete otevřít v irfanu. To že mají většinu tagu stejných neznamná, že se jedná o stejné formáty ;)


[18] 6. června 2006, 23:06 thingwath napsal:

[13] Zrovna u Hulána si dokážu představit celkem všechno. A docela bych i věřil, že třeba jednotlivé články si píše ručně.

[16] Pokud by každá aplikace XML měla mít vlastní speciální parser, tak žádné XML jako metajazyk mít nemusíme. To je kravina.


[19] 7. června 2006, 11:02 Vilém Málek napsal:

[18] Samozřejmě, že každá aplikace XML musí mít vlastní parser. Obecný parser XML může (v závislosti na své kvalitě) zajistit určitou základní úroveň zpracování jazyků odvozených od XML, ale nemůže zajistit všechny specifické potřeby. Nemůžete chtít, aby jeden program "uměl" pracovat se všemi značkovacími jazyky - aby rozuměl značkování zpravodajských exportů, geografických dat, biochemickému kódování, mapám počasí, knihovnickým anotacím a stovkám a tisícům dalších záležitostí. Ano, obecný parser XML můžete použít pro zpracování těchto informací, když nemáte po ruce nic lepšího, ale skutečný užitek z těch dat budete mít jen se specifickým parserem a odpovídajícím programem vybaveným specifickým uživatelským rozhraním. Oprostěte se od toho jednostranného webdesignérského pohledu a rozhlédněte se také okolo!


[20] 7. června 2006, 11:30 thingwath napsal:

[19] Používám XML na spoustě místech (a poslední web jsem dělal před rokem), ale nikdy jsem si nepsal vlastní XML parser ve smyslu toho co poskytuje například projekt Expat (kterýžto používá pokud vím i Mozilla) nebo jemu podobné, protože fakt nevím co bych tím získal navíc než spoustu práce s implementováním něčeho, co už dávno mnohokrát existuje.

Nemám vůbec na mysli tu část aplikace která ty data následně prostřednictvím nějakého rozhraní (DOM, SAX...) zpracovává, ta už samozřejmě obecná být nemůže. Ale to v prohlížečích také ani není.


[21] 16. června 2006, 18:18 Ondra napsal:

(Nechtely se mi cist predchozi prispevky).
Tohle je jen dalsi duvod proc pouzivat validni kod. Problem je teda u IE kde jsou s tim problemy. Ondra



 Přidat komentář 




Upozornění: Vkládejte prosím jen příspěvky, vztahující se k tomuto článku. Pro formátování textu můžete použít tyto HTML tagy: <strong>, <em> a <code>. Ostatní HTML tagy budou převedeny na text. Emailové a URL adresy začínající na http:// a ftp:// se automaticky převádějí na odkazy. Před i na konci adresy napište mezeru. Váš email nebude zobrazen.




nahoru ↑
Copyright © 2005 Marty | email: zongler@gmail.com | nahoru ↑ | Český katalog stránek

WebZdarma.cz