Pobawiłem się znowu trochę w osadzanie SVG na stronach. Wniosek? Cóż, nie dziwię się, że ów standard zdobywa tak wolno swoją popularność. Na razie zamieszczam link do strony z testem. http://www.michas.eu/mc_lab/svg-test/
Cóż, w dzisiejszych czasach technologia Flash jest tak popularna, że teraz to użytkownik, a nie webmaster, musi się o jej obsługę martwić.
Cóż, z faktami się nie dyskutuje. Można jednak się zastanawiać, jak pozbyć się tego problemu. W informatyce zazwyczaj rozbija się duży problem na mniejsze i dopiero owe mniejsze problemiki rozwiązuje. Nie widzę powdów, aby i nadmierną popularności Flasha rozwiązać tą metodą. Czyli na czym stoimi?
Reklamy Flash To chyba jedyna dziedzina, która ulegnie samorozwiązaniu, jak rozwiąże się wszystkie pozostałe. W dodatku akurat użytkownikom nie zależy, aby reklamy działały, więc ten dział można pominąć.
Gierki Flash Cóż, tworzenie gierek opartych na standardowych możliwościach przeglądarek to raczej ciekawostka, niż cokolwiek innego. W dodatku zagwarantowanie ich działania w konkurencyjnych produktach często jest bardzo kłopotliwe. W najbliższej przyszłości do tego zastosowania Flash będzie się zdecydowanie lepiej nadawał. Na szczęście owe gierki są sprawą dość marginalną i można je pominąć.
Filmy Tutaj rozwiązanie na szczęście jest. Można zaimplementować w przeglądarce wsparcie dla Ogg Theora. Jeśli dać użytkownikom narzędzia do ręcznej, precyzyjnej konwersji ich filmów na ten format, oraz narzędzia do tworzenia własnych interface'ów do odtwarzacza, co w przypadku konkurencyjnych technologii jest zbyt kosztowne, mamy chyba rozwiązane systemy społecznościowe.
Koejną zaletą jest to, że dzięki całkowitej otwartości kodeka, przy odrobinie dobrej woli ze strony producentów sprzętu i przeglądarki WWW, będzie można zapewnić płynne odtwarzenie Theory przy minimalnym zapotrzebowaniu na moc sprzętu. W przypadku technologii Flash, bez otwierania jej źródeł, nie da się tego zrealizować.
Jeszcze tylko zrobić stosowny plugin dla przeglądarek Microsoftu i (może) Apple. W każdym razie, im szybciej dostaniemy stosownie udoskonalone przeglądarki, tym lepiej. Uczciwie trzeba jednak przyznać, że na chwilę obecną Ogg Theora nie prezentuje najwyższej wydajności kompresji.
Audio Skoro jest rozwiązanie dla video, automatycznie jest też rozwiązanie dla audio. Jeśli jednak kodek Ogg Theora nie należy do czołówki, o tyle kodek Ogg Vorbis jest już jednym z najlepszych. Cóż, tylko czekać na stosowne przeglądarki i pluginy.
Wykresy Cóż, wykresy to grafika wektorowa. Powiedziałbym nawet, że esencja grafiki wektorowej. Technologia SVG chyba już w tej chwili jest w stanie przejąć na siebie ten ciężar. Tym bardziej, że bez większych problemów, w dowolnym języku można stworzyć stosowne skrypty je generujące. Tylko ten nieszczęsny plugin dla przeglądarki Microsoftu... Inna sprawa, że Flash się (chyba) nie zadomowił na tym polu dostatecznie.
Inna grafika wektorowa Jakoś tak większość schematów, która idealnie pasuje do zostania grafiką wektorową, jest robiona jako grafika rastrowa. Jakoś nie mogę sobie przypomnieć przypadku, aby było inaczej. No, czasami są robione jako pliki pdf, co jednak też nie jest zbyt dobrym rozwiązaniem. W każdym razie, im na tym polu SVG wcześniej się pojawi, tym lepiej. Czyli znowu ten brak pluginów dla przeglądarki Microsoftu...
Animowane ozdobniki Animacje Flash są czasami stosowane jako różnego rodzaju ozdobniki na stronach. Drobny element, który coś się tam rusza. Cóż, SVG jest już w tej chwili w stanie przejąć te zadanie. Pozostaje tylko problem z pluginami do przeglądarki Microsoftu. Aczkolwiek w tym wypadku nie ma specjalnie argumentów za zmianami. Poza tym wspomniane zastosowanie jest dość marginalne.
Całe serwisy w technologii Flash Chyba najgorsze zastosowanie technologii Flash w Sieci. W przypadku filmów niestety to chyba już standard, że cały, oficjalny serwis jest tak zrobiony. Cóz, może to i ładnie wygląda, może nie trzeba się martwić się o zgodność z różnymi przeglądarkami, wygodne w nawigacji i czytaniu to to jednak nie jest. Może, jak zostaną rozwiązane problemy z audio i video na stronach www, ktoś zacznie jednak tworzyć takie serwisy w konwencjonalnych technologiach. Ten problem będzie trzeba chyba zostawić sobie na sam koniec.
Podsumowanie Trzeba jak najszybciej wprowadzić obsługę Ogg Theora i Ogg Vorbis do przeglądarek. Trzeba też zrobić stosowne pluginy dla zacofanej przeglądarki Microsoftu. W sumie może to zrobić zarówno Opera, jak i Mozilla. Zawsze to dodatkowa reklama dla tych przeglądarek. Do tego czasu, jedyną rzeczą, jaką mogą robic webmasterzy, to stosować SVG, gdzie się tylko da.
Postanowiłem zamieścić sobie przykład osadzenia pliku SVG na stronie WWW wraz z alternatywnym obrazkiem png, który by działał w starszych przeglądarkach. Pełniejszy test, który powinien działać lepiej z różnymi przeglądarkami, z przyczyn technicznych został umieszczony na stronie http://michas.eu/tests/svg.html.
Powinna się wyświetlić zółta, uśmiechnięta główka na przezroczystym tle, czyli domyślnym tle strony. Jeśli wyświetli się główka pomarańczowa, znaczy że przeglądarka nie obsługuje formatu svgz, a jedynie svg, czyli nie obsługuje skompresowanych obrazków svg. Jeśli wyświetli się główka czerwona, znaczy że przeglądarka nie obsługuje obrazków svg, a jedynie png.
Znane problemy: - Nie zawsze działa automatyczne ustalanie rozmiarów obiektów SVG. Trzeba je niestety podawać ręcznie. - Przeglądarka MSIE 7 nie wyświetla natywnie obrazków SVG. Doinstalowanie do niej specjalnego pluginu, który umożliwiłby wyświetlanie grafiki SVG, jest dużo mniej prawdopodobne, niż wymiana przeglądarki na inną. - Przeglądarka MSIE 6, poza problemami wymienionymi wyżej, wyświetla symbol graficzny informujący o błędzie ładowania obiektu SVG. Trzeba to ukryć komentarzami warunkowymi, których jednak nie można stosować na blogu Opery.
Opera wprowadziła obsługę SVG w wersji 8, Firefox chyba w wersji 1.5. Czyli można przyjąć, że ów standard jest obsługiwany przez jakieś 40% przeglądarek w Polsce. Z jednej strony to dużo, ale trzeba pamiętać, że jakieś 60% będzie miało z owym formatem problemy. Pluginy do obsługi SVG są niestety mało popularne. Oczywiście mamy też standard Flash, który z nieznanych mi przyczyn jest wspierany przez ponad 90% przeglądarek i w sumie też pozwala na osadzanie na stronach WWW grafiki wektorowej.
Na problem grafiki wektorowej można popatrzeć też z innej strony. Właściwie większość grafik (pomijając reklamy), jaka jest dostępna na stronach html, to grafika wektorowa, która została tylko na format rastrowy przekonwertowana. A jeśli już spotyka się coś wektorowego, to jest to Flash.
Flash, mimo wielu zalet, ma poważne wady. Nie można go łatwo wygenerować przy pomocy standardowych skryptów na serwerach WWW. Taka możliwość bardzo by się przydała odnośnie wykresów, a tak zazwyczaj generuje się je lokalnie, a gotowe pliki (rastrowe albo Flash) wrzuca się na serwer. Do tego dochodzi jeszcze niezgodność technologii Flash z założeniami WWW.
Z technologią SVG nie jest jednak znowu tak tragicznie, można się spodziewać pewnej poprawy sytuacji. Mogą pojawiś się narzędzia dedykowane do tworzenia grafik na strony WWW, które będą generowały od razu dwa obrazki: rastrowy i SVG, oraz kod do wklejenia do dokumentu HTML. Tak się w sumie dzieje w przypadku obiektów Flash. Przeglądarki z obsługą SVG otworzą obraz SVG, a pozostałe otworzą obraz rastrowy.
Teoretycznie można też liczyć na sam Microsoft. Nie można wykluczyć, że firma stworzy własny plugin SVG, albo nawet zintegruje jego obsługę ze swoją przeglądarką. Idzie to z oporami, ale ostatnio poprawiono wsparcie dla kilku standardów.
Podsumowując. Jeśli komuś się chce, a będzie przy tym ostrożny, może się standardem SVG pobawić. Masowych rozwiązań na razie bym się jednak nie spodziewał.
Znalazłem sobie dość ciekawe zadanie. Tworzę właśnie skrypt, który generowałby statystyki dla sklepu internetowego, w którym pracuję.
Tekstowe statystyki były dość proste. Musiałem tylko rozwiązać problem z Googlobotem, który był na mojej stronie zbyt częstym gościem, jak na robota, a na dodatek udawał Netscape’a 5. Oczywiście nie jadł ciasteczek, więc moje statystyki były w opłakanym stanie.
Niestety grafika okazała się znacznie bardziej skomplikowana. Zamiast jak normalny człowiek wygenerować przy pomocy PHP obrazek gif i zapisać go na dysku, uznałem że do wykresów trzeba stosować grafikę wektorową. Oczywiście wygenerowanie obrazku svg i zapisanie go na dysku nie wchodziło w grę, było zbyt prymitywnym rozwiązaniem. Nawet zapisanie go w bazie danych uznałem za zbyt prymitywne. Jedyne, co spełniało moje wymagania, to wygenerować plik XHTML z osadzonym w nim fragmentem kodu SVG. Od strony wydajnościowej powinno to być chyba najlepszym rozwiązaniem.
Krótka zabawa z Google, stronami W3C i ich walidatorem dała chyba dobry rezultat. MSIE oczywiście tego nie strawi, ale nie musi. W Firefoksie i Operze chyba działa. Konqueror (trochę stara wersja) jakoś nie ma ochoty, choć samodzielne obrazki SVG mi jakoś wyświetla. Na razie pobawię się ignorując (chyba) błędne zachowanie Konquerora, a raczej niepełne, zakładając, że w późniejszej wersji to poprawią albo już poprawili. W razie innych problemów (albo potrzeby), przebuduję to do bardziej uniwersalnej formy.
W każdym razie doszedłem do momentu, w którym XHTML ma zdecydowaną przewagę nad HTML. Chyba osiągnąłem kolejny próg wtajemniczenia.