Mozilla chystá novinku – zavedenie podpory propietárnej zbierky document.all. A začína okolo toho byť celkom humbug. Spúste ľudí to pripadá ako zrada ideálov, ústup pred nepriateľom, ale hlavne spústa potenciálnych problémov do budúcnosti. Ja mám však trochu iný názor.
Túto zbierku používa Internet Explorer a v dobe, kedy IE prevalcovalo Netscape Navigator a na webe prakticky neexistoval žiadny iný browser, ju začali kóderi vo veľkom používať bez toho, aby čo i len trochu popremýšľali nad nejakým ošetrením browserov ktoré to nepodporujú. Výsledkom je, že ešte v dnešnej dobe existuje obrovské množstvo webov, ktoré sú napísané natoľko debilne, že bez podpory tejto zbierky nebudú fungovať. Webov, ktoré bežný užívateľ chce navštíviť a použiť.
Pokiaľ na taký web príde v IE a Mozille, pričom v jednom mu bude fungovať a v druhom nie, myslíte, že bude vinu zvaľovať na toho debilného webdesignera? Nie. Bude pindať na Mozillu. Z tohto pohľadu je teda podpora document.all logický a jednoznačne správny krok, ktorý pomôže Mozille preklopiť sa z priehradky alternatíva do chlieviku mainstream. A – vážení kolegovia webdesigneri – to je predsa to čo chceme, nie?
Z kóderského pohľadu v tom tiež nevidím žiadny problém.
Ozývajú sa hlasy, že zrazu nastane situácia, kedy detekcia IE pomocou
testovania document.all prestane fungovať. Ehm, ehm… nechcem do nikoho
rýpať, ale ak píšete kvalitné skripty, tak iste dobre viete, že sa
v nich majú testovať použité metódy a objekty, nie použitý browser.
Degradácia by mala smerovať zhora nadol a nie naopak. Správne napísaný
skript (ktorý počíta aj s archaickými verziami IE) by mal čisto
teoreticky vyzerať asi takto: if (document.getElementById)
{//niečo} else if (document.all) {//niečo iné} else {//fakof}.
V takomto prípade nevidím sebemenší problém.
Ďalšou drobnosťou, na ktorú sa tak trochu pozabúda, je fakt, že Mozilla
nebude vracať true pri testovaní prítomnosti zbierky. Bude vracať iba
výsledky pri použití danej zbierky. Takže konštrukcia if
(document.all) {//IE} else {//Mozilla} ostáva naďalej funkčná a
platná (aj keď podľa mňa zvrátená a blbá). Toto je podľa mňa
potenciálny zdroj problémov. Lepšie povedané, dvojsečná zbraň. Prečo?
Môžu nastať dva prípady:
- Človek čo písal skript je prasa, plne sa opiera o document.all a v tom prípade bude v novej Mozille všetko v pohodičke. Zbierka bude vracať to čo má a všetko bude fungovať (zjavne) tak ako má.
- Človek čo písal skript je dôkladné prasa a tak tam niekde šupne riadok
asi v tomto znení:
if (document.all) {//všetko v pohode} else {alert(„tvoj browser je na riť, použi IE“)}. A sme tam kde sme boli. V prdeli.
Takže aby som to zhrnul: Myslím si, že zavedenie podpory document.all do Mozilly je krok správnym smerom. Čo je super. Bohužiaľ, kvôli tomu aby sa umlčali negatívne ohlasy komunity webdesignerov, ktorí to nedomýšľajú do dôsledkov, to nie je plnohodnotný krok, ale iba také nejaké ukročenie približne správnym smerom. Čo je škoda.

Sleduj všetky zápisy pomocou RSS
Sleduj všetky komentáre pomocou RSS
no ja tiež súhlasím že zavedenie document.all pomože, a to že niekto písal scripty „ako prasa“, tak nech čelí následkom svojej roboty ;) netvrdím že ja som taký nebol a ešte i v niektorých prípadoch som. Ako však Riki naznačil, je to dvojsečná zbraň, tak uvidím aké + a – mi to prinesie :)