about:labs to nowy newsletter pisany z punktu widzenia Mozilla Labs. Właśnie ukazał się jego pierwszy numer, a w nim kilka bardzo ciekawych tematów. Szczególnie zainteresowało mnie coś, co po angielsku nazywa się Adaptive HTML Redenering Lens, a ja nazwałem Soczewką Renderowania Adaptatywnego HTMLa – jak się komuś nie podoba, niech komentuje, może będzie lepsza nazwa.
O co Chodzi?
![Soczewka Renderowania Adaptywnego HTMLa [1.] Oryginalny HTML [2.] HTML przetworzony przez Firefoxa [3.] Nakładka pluginów/wtyczek](http://lukasztyrala.files.wordpress.com/2008/11/01.png?w=500&h=474)
(1.) Oryginalny HTML; (2.) HTML przetworzony przez Firefoxa; (3.) Nakładka pluginów/wtyczek
Obecnie Firefox renderuje (przetwarza) oryginalny kod strony, którą odwiedzamy w trzech prostych krokach:
-
Oryginalny HTML
<html>, JavaScript
-
HTML przetworzony przez Firefoxa
Renderowanie strony w oknie przeglądarki
-
Nakładka pluginów/wtyczek (np. Firebug, ikonka Skype)
Dodatkowe elementy dodane/modyfikujące i zależne od warstwy 1., 2. i samej przeglądarki.
Według autora artykułu warto by dodać jeszcze jedna warstwę – tytułową soczewkę.
Koncept, który zaraz opiszę (w głównej mierze poprzez tłumaczenie a nie własne wypowiedzi) bardzo kojarzy mi się z Prism, innym projektem Mezilla Labs. BTW Już teraz Prism można zainstalować i za jego pomocą uruchamiać na przykład Gmaila, jako samodzielną aplikację, posiadającą nawet własny skrót na Pulpicie (albo gdziekolwiek indziej). To wszystko może mieć ogromny wpływ na sposób projektowania stron/aplikacji internetowych.
![Soczewka Adaptywnego Renderowania HTMLa [1.] Oryginalny HTML [2.] HTML przetworzony przez Firefoxa [3.] Soczewka Adaptywnego Renderowania HTML [4.] Nakładka pluginów/wtyczek](http://lukasztyrala.files.wordpress.com/2008/11/02.png?w=500&h=574)
(1.) Oryginalny HTML; (2.) HTML przetworzony przez Firefoxa; (3.) Soczewka Adaptywnego Renderowania HTMLa; (4.) Nakładka pluginów/wtyczek
Soczewka do powyższego zestawu doda nową warstwę, a zmodyfikowany schemat renderowania będzie miał wyglądać tak:
-
Oryginalny HTML
-
HTML przetworzony przez Firefoxa
-
Adaptatywna soczewka
-
Nakładka pluginów/wtyczek (np. Firebug, ikonka Skype)
Po co nam soczewki?
W pierwszym momencie zastanawiałem się po co kolejna warstwa, która może tylko doprowadzić do wydłużenia się czasu ładowania strony, utrudni mi pracę, bo znów nie wszystko będzie tak jak w standardach, a nie wprowadzi nowej jakości. Trochę się pomyliłem, bo pomysł jest ciekawy.
Teraz wszystkie warstwy są ze sobą ściśle powiązane i zależą od siebie – każda kolejna warstwa jest renderowana na podstawie tej, która ją poprzedza. Przykładowo, nie da się wyświetlić poprawnie strony, jeżeli w jej oryginalnym kodzie brakuje tagów zamykających (np. pominięto </div>), a rozszerzenia Firefoxa zawsze są zależne od warstw 1. i 2. Na dodatek wszystkie operacje i interakcje odbywają się na wyrenderowanej warstwie, która jest ściśle powiązana z oryginalnym kodem.
Soczewka byłaby kolejną (abstrakcyjną) warstwą, podobną do warstwy renderującej, ale jej zadania byłyby inne. Soczewka zarządza i manipuluje warstwą drugą (wyrenderowaną przez FF), ale śledzi zmiany w warstwie pierwszej (oryginalny kod), a wszelkie interakcje użytkownika oraz wtyczki są wykonywane na soczewce właśnie.
Co by to dało? Dożo. Na początek można by sobie przeciągać i upuszczać rożne elementy, różnych stron. Zmieniać wielkość inputów (jak to jest obecnie możliwe w Safari), powiększać obrazki bezpośrednio na stronie, albo zmieniać położeni i wielkość jakichkolwiek elementów strony. Dzielić się fragmentami stron ze znajomymi, jedynie poprze przeciąganie zawartości na ich awatary.
W przyszłości soczewka miałaby pozwolić na uruchamianie natywnych programów systemu operacyjnego bezpośrednio w oknie przeglądarki (np. otwierając PDFa można sprawdzić pisownię używając odpowiedniego modułu przeglądarki).
Możliwości jest dużo, a opisanie ich wszystkich niepotrzebnie wydłużyłoby ten artykuł. Wszytko można prześledzić w artykule, do którego się odwołuję.
Refleksje
Zastanawiam się przy projekt przejdzie w fazę realizacji, która będzie na pewno wymagała ogromnej pracy i współpracy nie tylko wewnątrz grupy odpowiedzialnej za Firefoxa. Na pewno pomoże społeczność, ale obawiam się, że bez wsparcia innych firm tworzących oprogramowanie może się nie udać (patenty, itp.).
Ciekawy będzie też wpływ ewentualnego upowszechnienia się takiego podejścia do przeglądania sieci na samo tworzenie stron i aplikacji internetowych. Na pewno umocni się koncepcja rozdzielania treści od prezentacji, logiki od struktury i informacji od nośnika przekazu. Załóżmy, że ktoś odwiedzi moją stronę i postanowi sobie przykleić na pulpit jedynie sekcję odpowiedzialną, za nowo dodane obrazki? Będę musiał zapewnić integralność ze stroną, ale rozdzielność i niezależność fragmentów od całości. Style zaszyte w style="" raczej nie przejdą (żeby sobie ktoś nie pomyślał, że teraz tego bezeceństwa używam!).
Pożyjemy zobaczymy, a mi cały czas wydaje się, że Mozilla wybiega daleko w przyszłość z ambitnym planem przeniesienia ciężaru obsługi użytkownika z systemu operacyjnego na przeglądarkę. Nie głupie, biorąc pod uwagę, że już teraz nie trzeba instalować nic poza Firefoxem i można edytować zdjęcia, pisać dokumenty, tworzyć arkusze kalkulacyjne i prezentacje, odbierać pocztę, rozmawiać przez komunikatory czy zamawiać pizzę.