DOMContentLoaded

08 listopada, 2009

Dzisiejszy wpis dedykuję wszystkim wielbicielom zdarzenia DOMContentLoaded. Niestety jak wszystko co dobre, wymaga ono ostrożności w stosowaniu.

Dla zobrazowania sytuacji dwa przykłady.

W MooTools 1.1.1 (niektórzy muszą wciąż na nim bazować - i nie jest to wcale małe grono) implementacja zdarzenia domready sprawia, że w IE powstają czasami dziwne błędy wynikające z tego, że zdarzenie to występuje PRZED wczytaniem kompletnego drzewa dokumentu. Efektem jest z reguły na wpół załadowana strona. Żeby było jeszcze ciekawiej to problem ten występuje tylko w niektórych przypadkach - niestety nie udało mi się jeszcze wykryć kiedy dokładnie to się dzieje ze względu na złożoność stron, które posiadały ten problem. Jedno jest pewne - w MooTools 1.1.1 stosowanie zdarzenia domready właściwie odpada na stronach gdzie użytkownik może swobodnie dodawać nowe moduły z treścią - w konkretnej konfiguracji nasz skrypt może pięknie działać w IE ale wystarczy, że użytkownik włączy dodatkowe moduły i wtedy mogą wystąpić poważne problemy - lepiej nie ryzykować zwłaszcza, że widok strony, która wczytała się do połowy wcale nie powoduje przywołania na myśl tego, że przyczyną może być źle działający skrypt.

Drugi problem tyczy się także stron gdzie mogą się pojawić później dodatkowe elementy. Jako przykład przytoczę tu skryptowe wyrównywanie kolumn - pierwsza myśl przy tworzeniu takowego skryptu jest jasna - niech to wyrównywanie wykona się najszybciej jak to tylko jest możliwe. I wszystko zapewne będzie działać pięknie do momentu w którym na stronie nie pojawi się po jakimś czasie dodatkowy skrypt, który będzie modyfikował wysokość elementów w treści kolumny i oczywiście złośliwie korzystał ze zdarzenia onLoad.

Reasumując ten krótki wpis - decyzja o korzystaniu ze zdarzenia DOMContentLoaded powinna wynikać nie tylko z zalet tego rozwiązania, ale także z przeanalizowania przyszłych losów tworzonej strony - jeżeli wiemy, że strona jest tak zbudowana iż umożliwia użytkownikowi spore zmiany w zakresie układu witryny i dodawanie dodatkowych rozwiązań bez naszego udziału to rada jest krótka - lepiej zapomnieć o stosowaniu tego zdarzenia.

Jestem oazą spokoju...

20 września, 2009

To mój ulubiony tekst związany z pracą. Istnieją dwie sytuacje, które mi o nim przypominają - testowanie strony na IE i kontakt z niektórymi użytkownikami naszych produktów. Skupię się na tym drugim, bo przez ponad 2 lata zaobserwowałem sporo ciekawych zjawisk. Fakt, że po dwóch latach mało co już człowieka dziwi i wyprowadza z równowagi.

Mógłbym podzielić użytkowników na bardzo wiele grup, ale skupmy się na moich "ulubionych". Istnieje wysokie prawdopodobieństwo, że jeżeli ktoś udziela wsparcia dla produktów używanych przez szersze grono osób to trafi na podobnych osobników.

Czytaj dalej...

Przeglądarki...

12 września, 2009

Zaokrąglone rogi będą motywem przewodnim tego wpisu, bo idealnie wiążą się z tematem, który chciałbym poruszyć. Sądzę, że przewija się on w głowie niejednej osoby, która miała okazję składać strony WWW.

Czytaj dalej...

Banalny userJS mojego autorstwa, który ma za zadanie odblokować cytowanie prywatnych wiadomości na blip.pl

W poprzednich częściach kursu nauczyliśmy się poruszać po drzewie dokumentu, tworzyć nowe elementy strony oraz zmieniać ich cechy, odczytywać je oraz przechowywać dodatkowe informacje w elementach. Przyszła pora poznać kilka metod dokonujących znaczących zmian w strukturze dokumentu - dwie z nich poznaliśmy wcześniej - adopt i clone, teraz nauczymy się kilku nowych.

Czytaj dalej...