Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00182 008392 10461170 na godz. na dobę w sumie
Projektowanie serwisów WWW. Standardy sieciowe. Wydanie II - książka
Projektowanie serwisów WWW. Standardy sieciowe. Wydanie II - książka
Autor: Liczba stron: 464
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-0774-9 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> tworzenie stron www
Porównaj ceny (książka, ebook, audiobook).

Dostosuj swoje witryny do obowiązujących standardów

Dzięki ludziom takim jak Jeffrey Zeldman w świecie technologii internetowych coraz większą uwagę przywiązuje się do standardów. Dotyczy to także producentów popularnych przeglądarek internetowych, dlatego wreszcie możliwe jest tworzenie efektownych witryn, które wyglądają identycznie u użytkowników korzystających z różnych programów. Jednak nie jest to jedyna zaleta stosowania standardów. Za ich pomocą możesz sprawić, że Twoje strony będą działały szybciej, a ich aktualizacja stanie się dużo łatwiejsza, co przełoży się również na koszty utrzymania witryny.

'Projektowanie serwisów WWW. Standardy sieciowe. Wydanie II' to zaktualizowana wersja niezwykle popularnego, praktycznego przewodnika po świecie standardowych technologii internetowych. Dowiesz się z niego, czym są standardy sieciowe oraz dlaczego warto się do nich stosować. Poznasz sposoby projektowania i tworzenia witryn z uwzględnieniem standardów. Nauczysz się korzystać z języków XHTML, XML, CSS, ECMAScript oraz modelu DOM, które są wykorzystywane do pisania łatwych w pielęgnacji serwisów WWW. Przeczytasz również o mechanizmach ułatwień dostępu oraz mitach związanych z nimi. Jest to lektura obowiązkowa dla wszystkich projektantów i programistów, którzy chcą tworzyć nowoczesne witryny internetowe.

Wykorzystuj sprawdzone techniki, które zaoszczędzą czas i pieniądze
zarówno Twoje, jak i użytkowników Twoich witryn.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Projektowanie serwisów WWW. Standardy sieciowe. Wydanie II Autor: Jeffrey Zeldman T³umaczenie: Szymon Kobalczyk ISBN: 83-246-0774-9 Tytu³ orygina³u: Designing with Web Standards (2nd Edition) Format: B5, stron: 464 Dostosuj swoje witryny do obowi¹zuj¹cych standardów (cid:129) Poznaj standardowe technologie sieciowe (cid:129) Naucz siê pisaæ strony poprawnie wyœwietlane we wszystkich przegl¹darkach (cid:129) Zredukuj koszty utrzymania witryny Dziêki ludziom takim jak Jeffrey Zeldman w œwiecie technologii internetowych coraz wiêksz¹ uwagê przywi¹zuje siê do standardów. Dotyczy to tak¿e producentów popularnych przegl¹darek internetowych, dlatego wreszcie mo¿liwe jest tworzenie efektownych witryn, które wygl¹daj¹ identycznie u u¿ytkowników korzystaj¹cych z ró¿nych programów. Jednak nie jest to jedyna zaleta stosowania standardów. Za ich pomoc¹ mo¿esz sprawiæ, ¿e Twoje strony bêd¹ dzia³a³y szybciej, a ich aktualizacja stanie siê du¿o ³atwiejsza, co prze³o¿y siê równie¿ na koszty utrzymania witryny. „rojektowanie serwisów WWW. Standardy sieciowe. Wydanie II” to zaktualizowana wersja niezwykle popularnego, praktycznego przewodnika po œwiecie standardowych technologii internetowych. Dowiesz siê z niego, czym s¹ standardy sieciowe oraz dlaczego warto siê do nich stosowaæ. Poznasz sposoby projektowania i tworzenia witryn z uwzglêdnieniem standardów. Nauczysz siê korzystaæ z jêzyków XHTML, XML, CSS, ECMAScript oraz modelu DOM, które s¹ wykorzystywane do pisania ³atwych w pielêgnacji serwisów WWW. Przeczytasz równie¿ o mechanizmach u³atwieñ dostêpu oraz mitach zwi¹zanych z nimi. Jest to lektura obowi¹zkowa dla wszystkich projektantów i programistów, którzy chc¹ tworzyæ nowoczesne witryny internetowe. (cid:129) Przegl¹d standardów sieciowych (cid:129) Projektowanie i tworzenie serwisów zgodnie ze standardami (cid:129) Walka z szybko starzej¹cymi siê witrynami (cid:129) Nadawanie spójnego stylu witrynom za pomoc¹ arkuszy CSS (cid:129) Pisanie przejrzystego kodu za pomoc¹ jêzyka XHTML (cid:129) Tworzenie skryptów manipuluj¹cych modelem DOM (cid:129) Obs³uga ró¿nych przegl¹darek (cid:129) Stosowanie mechanizmów u³atwieñ dostêpu Wykorzystuj sprawdzone techniki, które zaoszczêdz¹ czas i pieni¹dze zarówno Twoje, jak i u¿ytkowników Twoich witryn Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treści Wprowadzenie ................................................................ 17 Nie wszystko dla wszystkich ........................................................................ 17 Teoria a praktyka .................................................................................. 19 Ciągłość, a nie zbiór sztywnych reguł .......................................................... 20 Pokazuj, nie sprzedawaj ........................................................................ 20 Niech praca sprzedaje się sama ............................................................. 21 Sprzedaż wewnątrz firmy ...................................................................... 22 Zapach zmian .............................................................................................. 23 Część I Houston, mamy problem 1 Zanim zaczniesz .............................................................. 27 Nakręcanie kosztów, zmniejszanie zwrotów ................................................. 28 Przerwanie cyklu starzenia się .................................................................... 30 Czym jest zgodność w przód? ....................................................................... 31 Żadnych zasad, żadnego dogmatu ............................................................... 33 Praktyka, nie teoria ..................................................................................... 35 Czy ta podróż jest naprawdę potrzebna? ...................................................... 37 99,9 witryn wciąż jest przestarzałych .................................. 39 Nowoczesne przeglądarki i standardy sieciowe .............................................. 40 Nowy kod do nowej pracy ...................................................................... 42 Problem „wersji” ......................................................................................... 43 Myślenie wsteczne ....................................................................................... 46 Przestarzałe znaczniki: dodatkowy koszt dla właścicieli witryn ............. 50 Zgodność wstecz .................................................................................... 52 Blokowanie użytkowników nie wpływa dobrze na interesy ..................... 53 Droga do Pacanowa .............................................................................. 57 Dobre traktowanie złego kodu ..................................................................... 58 Lek .............................................................................................................. 61 4 Projektowanie serwisów WWW. Standardy sieciowe 2 Projektowanie i budowanie z użyciem standardów .....................63 Pokonywanie trudności ................................................................................ 65 Koszt projektowania przed wprowadzeniem standardów ............................. 66 Nowoczesna strona starymi metodami ......................................................... 67 Królestwo tragedii ....................................................................................... 71 Trzy elementy standardów sieciowych ......................................................... 74 Struktura .............................................................................................. 74 Prezentacja ........................................................................................... 77 Zachowanie ............................................................................................ 77 W praktyce .................................................................................................. 78 Zalety metod przejściowych ......................................................................... 79 Projekt standardów sieciowych: przenośność w zastosowaniu ...................... 81 Jeden dokument dla wszystkich ............................................................. 82 A List Apart: jedna strona, wiele widoków .................................................. 84 Projektowanie nie tylko z przeznaczeniem na ekran .............................. 86 Oszczędność czasu i kosztów, wzrost zysków ......................................... 87 Co dalej? ...................................................................................................... 88 Przejściowa zgodność w przód (projektowanie hybrydowe) .................... 88 Całkowita zgodność w przód .................................................................. 91 3 Problem ze standardami .....................................................95 Miło popatrzeć, trudno zakodować ............................................................... 95 Wspólne zamiary, wspólne środki .......................................................... 97 Przyjęcie standardów a rzeczywistość .................................................... 98 2000 — rok, w którym przeglądarki osiągnęły dojrzałość .......................... 100 IE5/Mac: przełączanie i powiększanie .................................................. 100 Mocne posunięcie Netscape’a ............................................................... 101 Przełamanie tamy ................................................................................ 104 Za mało, za późno? .................................................................................... 105 CSS: pierwsze koty za płoty ................................................................. 106 Złe przeglądarki prowadzą do złych praktyk .............................................. 107 Klątwa złego odwzorowywania ............................................................. 107 Brak dziedziczenia ............................................................................... 109 Złe zachowanie .................................................................................... 110 Długo oczekiwany standard w językach skryptowych .......................... 111 Mało czytelne witryny, niezrozumiałe nazewnictwo .................................... 112 Problemy akademickie a problemy ekonomiczne .................................. 113 Konsorcjum sugeruje, firmy sprzedają ................................................ 114 Świadomość produktu a świadomość standardów ................................ 114 Słowo na F ................................................................................................ 116 Wartość Flasha ................................................................................... 117 Problem z Flashem .............................................................................. 119 Inny problem z Flashem ...................................................................... 119 Zgodność to brzydkie słowo ....................................................................... 120 Potęga języka w formowaniu percepcji ................................................ 120 Problem z inspiracją ............................................................................ 121 Inne problemy ..................................................................................... 122 Spis treści 5 4 Wyszukiwanie, syndykacja, blogi, podkasty i długi ogon (oraz inne powody zwycięstwa standardów sieciowych) ..............125 Uniwersalny język (XML) ......................................................................... 127 Porównanie XML-a i HTML-a ........................................................... 129 Jeden rodzic, wiele dzieci ..................................................................... 129 Niezbędny element profesjonalnego oprogramowania .......................... 130 Bardziej popularny niż biały raper ...................................................... 131 Pięć spraw świadczących o potędze technologii .................................... 133 Złota żyła innowacji ............................................................................ 134 Narzędzia do publikacji dla całej reszty ............................................... 139 Do twoich usług ................................................................................... 139 Aplikacje XML a twoja witryna ................................................................. 141 Kompatybilne z natury .............................................................................. 142 Nowa era współpracy ................................................................................. 143 Testy i specyfikacje ............................................................................. 143 Jak można ze sobą współpracować? ..................................................... 144 Grupa robocza WHAT ........................................................................ 145 Internet Explorer 7 i projekt standardów sieciowych .......................... 145 Standardy sieciowe i narzędzia edycyjne ................................................... 146 Grupa zadaniowa Dreamweaver .......................................................... 146 Narzędzia WYSIWYG stają się pełnoletnie (dwa z trzech to nie najgorzej) ............................................................ 148 Od FrontPage do Expression Web Designer ....................................... 148 Nadejście układów CSS ............................................................................. 149 Kampania uaktualniania przeglądarek ................................................ 150 Początek potopu .................................................................................. 154 Skąd czerpać style? ............................................................................. 155 Największa skarbnica wiedzy o CSS .................................................... 158 Chwilowa moda… o ustalonym przeznaczeniu ........................................... 158 Upowszechnianie standardów sieciowych ................................................... 159 Witryny komercyjne dają się ponieść fali ............................................. 162 Wired Digital zmienia technologię ....................................................... 162 Zachęcanie projektantów ..................................................................... 164 Ciągle pojawiają się nowe hity ............................................................. 164 Droga do sukcesu jest wybrukowana walidacją ................................... 165 Część II Projektowanie i budowanie 5 Nowoczesny układ znaczników ............................................171 Ukryty schemat kiepskiego kodu ............................................................... 176 Przeformułowanie czego? .......................................................................... 178 Podsumowanie .......................................................................................... 180 Który XHTML jest dla mnie najlepszy? .................................................... 180 XHTML 2 — nie dla każdego ............................................................. 181 10 najważniejszych powodów, dla których warto wybrać XHTML ...... 182 5 powodów, dla których nie warto wybierać XHTML-a ....................... 183 6 Projektowanie serwisów WWW. Standardy sieciowe 6 XHTML: restrukturyzacja sieci ............................................ 185 Konwersja do XHTML-a: proste zasady, łatwe wytyczne .......................... 186 Dokument rozpoczynaj od deklaracji DOCTYPE i przestrzeni nazw .. 186 Zadeklaruj typ zawartości strony ........................................................ 189 Wszystkie znaczniki pisz małymi literami ............................................ 191 Wartości wszystkich atrybutów umieszczaj w cudzysłowach ................ 194 Przypisuj wartości wszystkim atrybutom ............................................ 195 Zamykaj wszystkie znaczniki ............................................................... 196 Zamykaj również „puste” znaczniki ..................................................... 196 Nie umieszczaj podwójnych myślników w komentarzach ..................... 197 Koduj wszystkie znaki i ................................................................ 198 Podsumowanie zasad XHTML-a ............................................................... 198 Kodowanie znaków: nudne, bardzo nudne i potwornie nudne .............. 199 Leczenie strukturalne .......................................................................... 200 Sensowne kodowanie dokumentu ......................................................... 201 Elementy wizualne i struktura ................................................................... 205 7 Struktura w układzie ścisłym i hybrydowym: gwarancja zwartych i trwałych stron .................................... 207 Czy każdy element musi być strukturalny? ................................................ 208 div, id i inni pomocnicy ........................................................................ 209 Semantyczny kod i wielokrotne użycie ................................................. 214 Układy hybrydowe i spójny kod: co należy, a czego nie wolno .................... 218 Nazwijmy złe rzeczy po imieniu ........................................................... 219 Powszechne błędy w układach hybrydowych ........................................ 219 Znaczniki div są w porządku ................................................................ 223 Pokochać atrybut id ............................................................................ 224 Zakaz stosowania nadmiarowych komórek tabel .................................. 226 Parada przestarzałych metod .................................................................... 227 Czas map ............................................................................................. 227 Niezadowolenie z map .......................................................................... 228 Brak dostępu, brak struktury .............................................................. 229 Cięcie i składanie ................................................................................. 229 Dojrzewanie metody cięcia i składania ................................................. 230 Nadmierna rozwlekłość nadmiernie rozwlekłych tabel ........................... 232 Powraca zły CSS ................................................................................. 233 Co dalej? .............................................................................................. 237 8 XHTML w przykładach: układ hybrydowy (część I) .................... 239 Zalety metod hybrydowych zastosowanych w tym rozdziale ....................... 239 Arkusze stylów zamiast JavaScriptu ................................................... 240 Podstawowe podejście (wstęp) ................................................................... 241 Oddzielne tabele: korzyści pod względem CSS i funkcji ułatwień dostępu .................................................................... 241 Pomiń nawigację — co i jak ................................................................ 242 Dodatkowe atrybuty id ........................................................................ 247 Spis treści 7 Pierwszy kod taki sam jak ostatni ............................................................. 249 Kod nawigacji (pierwsza tabela) .......................................................... 249 Prezentacja, semantyka, czystość i grzech ........................................... 250 Kod treści (druga tabela) .................................................................... 252 9 Podstawy CSS ................................................................253 Wstęp do CSS ........................................................................................... 253 Korzyści z CSS .................................................................................... 254 Anatomia stylów ........................................................................................ 256 Selektory, deklaracje, właściwości i wartości ....................................... 256 Wielokrotne deklaracje ........................................................................ 257 Biała przestrzeń i brak rozpoznawania wielkości znaków .................... 258 Wartości ogólne i alternatywne ............................................................ 259 Selektory grupowe ............................................................................... 260 Dziedziczenie i jego przeciwnicy .......................................................... 260 Selektory potomne ............................................................................... 262 Selektory id i selektory potomne .......................................................... 263 Selektory klas ...................................................................................... 264 Łączenie selektorów do tworzenia zaawansowanych efektów ............... 265 Style zewnętrzne, osadzone i bezpośrednie ................................................ 268 Zewnętrzne arkusze stylów .................................................................. 268 Style bezpośrednie ............................................................................... 271 Metoda „najlepszego możliwego scenariusza” ............................................ 272 Od stylów osadzonych do zewnętrznych: metoda dwóch arkuszy ......... 272 Względne i absolutne ścieżki plików .................................................... 275 Korzyści płynące ze stosowania metod najlepszego możliwego scenariusza i dwóch arkuszy stylów ..................................................... 275 10 Zastosowanie CSS: układ hybrydowy (część II) .........................277 Przygotowanie ilustracji ............................................................................ 278 Ustalenie podstawowych parametrów ........................................................ 280 Style ogólne, więcej na temat skrótów i marginesów ............................ 280 Elementy niewidoczne i blokowe .......................................................... 281 Kolory odnośników (wprowadzamy pseudoklasy) ................................ 284 Poprawiamy inne pospolite elementy ................................................... 286 Więcej na temat rozmiarów czcionek ................................................... 288 Ustalenie układu strony ...................................................................... 292 Elementy nawigacyjne: pierwsze podejście ................................................ 295 CSS dla elementów nawigacyjnych: pierwsza próba przy drugim podejściu 299 CSS dla elementów nawigacyjnych: ostatnie podejście .............................. 301 Ostatnie kroki: style zewnętrzne oraz efekt „jesteś tutaj” ......................... 305 8 Projektowanie serwisów WWW. Standardy sieciowe 11 Praca z przeglądarką. Część I: przełączanie przez typ dokumentu i tryb standardowy .... 309 Saga o przełączaniu przez deklarację typu dokumentu .............................. 310 Sterowanie interpretacją w przeglądarce: przełącznik typu dokumentu ................................................................ 313 Pełna lista kompletnych deklaracji typu dokumentu XHTML ............ 316 Świętujmy różnorodność przeglądarek! (A przynajmniej nauczmy się z nią żyć) ..................................................... 320 12 Praca z przeglądarką. Część II: model ramkowy, błędy i sposoby radzenia sobie z nimi ... 327 Model ramkowy i jego niedociągnięcia ....................................................... 328 Jak działa model ramkowy? ................................................................. 330 Jak model ramkowy został zepsuty? .................................................... 331 Sztuczka z modelem ramkowym: CSS stanie się bardziej demokratyczny dzięki odpowiednim zabezpieczeniom .......................... 338 Błąd znaków odstępu w IE dla Windows ................................................... 341 Błąd właściwości „float” w IE6 dla Windows ............................................. 345 Float, Peek-a-Boo i co jeszcze ............................................................. 348 Flash i QuickTime: obiekty pożądania? ..................................................... 349 Obiekty osadzane: opowieść o próżności i zemście ................................ 349 Dwie pieczenie na jednym ogniu: osadzanie obiektów multimedialnych przy przestrzeganiu standardów ............................... 351 Łyżka dziegciu w beczce miodu: object nie działa .......................... 352 Świat, w którym omijanie błędów jest codziennością .................................. 353 13 Praca z przeglądarką. Część III: typografia ............................. 357 Rozmiar ma znaczenie ............................................................................... 357 Kontrola użytkownika ............................................................................... 358 Horrory starej szkoły ................................................................................. 358 Punkty sporne ..................................................................................... 360 Nareszcie standardowy rozmiar ................................................................. 361 Wszelkie starania zniweczone przez jedno kliknięcie ............................ 364 Upojenie węszycieli: zła reakcja na zmiany w przeglądarkach ............. 365 Standardowe rozmiary i najlepsze praktyki ......................................... 367 Jednostki em: radość i płacz ...................................................................... 368 Ustawienia użytkownika a jednostki em .............................................. 368 Pasja do pikseli ......................................................................................... 369 Najmniejsza jednostka: to rzecz całkowicie względna .......................... 370 Kłopot z pikselami ............................................................................... 372 Metoda symbolicznych wartości rozmiarów czcionek ................................. 373 Dlaczego wartości symboliczne wygrywają z jednostkami em i procentami? ...................................................................................... 373 Początkowe problemy w implementacji wartości symbolicznych .......... 374 Twój rozmiar ....................................................................................... 378 Spis treści 9 14 Podstawowe mechanizmy ułatwień dostępu ............................379 Dostępność według podręczników .............................................................. 381 Powszechna dezorientacja ......................................................................... 383 Zły duch macza w tym palce ................................................................ 383 Prawo a elementy układu .......................................................................... 387 Wyjaśniamy znaczenie paragrafu 508 ................................................. 388 Obalamy mity dostępności ......................................................................... 390 Mit: dostępność zmusza cię do tworzenia dwóch wersji witryny ........... 390 Mit: wersja tekstowa zaspokaja wymagania równego lub równorzędnego dostępu ................................................................. 391 Mit: dostępność kosztuje zbyt wiele ..................................................... 391 Mit: dostępność wymusza tworzenie prymitywnych, słabej jakości projektów ....................................................................... 394 Mit: zgodnie z paragrafem 508 witryna musi wyglądać tak samo we wszystkich przeglądarkach i agentach użytkownika ....................... 394 Mit: dostępność jest „tylko dla osób niepełnosprawnych” .................... 395 Mit: Dreamweaver MX/Cynthia Says/LIFT/ Tutaj wstaw nazwę narzędzia rozwiązuje wszystkie problemy dostępności ............... 395 Mit: projektanci mogą swobodnie ignorować przepisy o dostępności, jeśli tak nakazują im klienci ......................................... 396 Ułatwienia dostępu element po elemencie .................................................. 397 Obrazki ............................................................................................... 397 Apple QuickTime i inne przesyłane strumieniowo obrazy wideo .......... 400 Macromedia Flash 4/5 ......................................................................... 400 Macromedia Flash MX i Flash 8 ......................................................... 401 Kolory ................................................................................................. 402 CSS ..................................................................................................... 403 Efekty najeżdżania oraz inne zachowania implementowane w skryptach.......................................................................................... 405 Formularze ......................................................................................... 407 Mapy obrazu ....................................................................................... 407 Układy oparte na tabelach .................................................................. 408 Tabele przechowujące dane ................................................................. 408 Ramki i aplety ..................................................................................... 408 Elementy błyskające lub migające ....................................................... 408 Sprawdzone narzędzia ............................................................................... 409 Pokochaj Cynthie ...................................................................................... 410 Zachowaj kolejność: nasz dobry znajomy atrybut tabindex .................. 411 Planowanie dostępu: jak na tym skorzystasz ............................................. 416 15 Wykorzystanie skryptów opartych na modelu DOM ....................419 DOM według podręczników ....................................................................... 420 Co to jest DOM? ........................................................................................ 422 Standardowy sposób na to, by strony WWW zachowywały się jak aplikacje ....................................................................................... 422 Zatem gdzie to działa? ......................................................................... 424 10 Projektowanie serwisów WWW. Standardy sieciowe Proszę, DOM, nie zrób im krzywdy ..................................................... 425 Przełączniki stylów: ułatwiają dostęp, oferują wybór ........................... 429 16 Przeprojektowywanie z zastosowaniem CSS ........................... 433 Definiujemy wymagania ............................................................................ 434 10 najważniejszych wymagań .............................................................. 434 Kładziemy fundamenty ........................................................................ 436 Zabawa z nagłówkami ......................................................................... 441 Zakończenie ......................................................................................... 444 Dodatki Biblioteczka standardów sieciowych .................................... 457 Skorowidz .................................................................... 449 ROZDZIAŁ PIERWSZY 99,9 witryn wciąż jest przestarzałych J est taka choroba, która dotyka niemal każdą witrynę znajdującą się obecnie w sieci, od najskromniejszej strony domowej po por- tale korporacyjnych gigantów. Przebiegła i podstępna, rozprzestrze- nia się niemal nierozpoznana, ponieważ bazuje na standardach prze- mysłu sieciowego. Chociaż projektanci i właściciele stron mogą o tym jeszcze nie wiedzieć, 99,9 witryn jest przestarzałych. Strony mogą wyglądać i zachowywać się prawidłowo w popularnych przeglądarkach. Ale poza tym tolerującym błędy środowiskiem zaczy- nają być już widoczne symptomy choroby i rozkładu. W nowych wersjach przeglądarki Microsoft Internet Explorer, Opera Software, Netscape Navigator i Mozilla (przeglądarka typu open source bazująca na silniku Gecko, którego kod jest sterownikiem mię- dzy innymi takich środowisk jak Firefox, Camino i Netscape Navi- gator) starannie zbudowane układy stron zaczynają się rozpadać, a kosztowne mechanizmy zachowań przestają funkcjonować. Wraz z ewolucją tych przeglądarek wydajność stron będzie stale spadać. W mniej znanych przeglądarkach, urządzeniach przystosowanych do potrzeb osób niepełnosprawnych, a także w zyskujących popularność palmtopach czy telefonach komórkowych z dostępem do sieci, więk- szość stron nigdy nie działała, podczas gdy pozostałe działają jedy- nie częściowo. W zależności od potrzeb i budżetu właściciele witryn oraz sami projektanci ignorowali tego typu środowiska lub zauważali ich istnienie i zasilali je specjalnie przygotowanym kodem w taki sam sposób, jak dla zwykłych przeglądarek. 40 Rozdział 1 99,9 witryn wciąż jest przestarzałych Aby zrozumieć bezsens takich działań i zobaczyć, w jaki sposób zwiększają one koszty i komplikują rozwój witryny, nigdy nie doprowadzając do osią- gnięcia zamierzonego celu, musimy przeanalizować zachowanie nowocze- snych przeglądarek i dostrzec różnice występujące między nimi a ich star- szymi niezgodnymi wersjami. Nowoczesne przeglądarki i standardy sieciowe Mówiąc w tej książce o „nowoczesnych” lub „zgodnych ze standardami” przeglądarkach, mam na myśli przeglądarki, które rozpoznają oraz obsłu- gują HTML i XHTML, kaskadowe arkusze stylów (CSS), ECMAScript oraz model obiektów dokumentu (W3C DOM). Wszystkie standardy ze- brane razem pozwolą nam wznieść się ponad prezentacyjny układ znacz- ników, niezgodne języki skryptowe oraz będący ich wynikiem nieustający proces starzenia się witryn. Do nowoczesnych przeglądarek zaliczają się między innymi: zdobywca wielu nagród, darmowa przeglądarka Firefox 1.5+ oraz jej niemrawy komer- cyjny brat Netscape Navigator 8, Microsoft Internet Explorer 6 i nowsze dla Windows, Safari 2.0+ firmy Apple dla systemu Macintosh OS X oraz Opera 8.5+ firmy Opera Software. (Czy pominąłem Twoją ulubioną zgod- ną ze standardami przeglądarkę? Nie miałem zamiaru jej lekceważyć. Każda próba wyliczenia wszystkich przeglądarek zgodnych ze standardami jest z góry skazana na niepowodzenie). Mimo że będę stosował termin „zgodna ze standardami”, proszę pamiętać o tym, co zostało powiedziane we wstę- pie: żadna z przeglądarek nie jest i nie może być całkowicie zgodna ze stan- dardami. Jednak brak perfekcji przeglądarek nie zwalnia z dążenia do zgodności ze standardami. Miliony ludzi nadal używają Internet Explorera 5 i 5.5 dla Windows. Jeśli chodzi o zachowanie standardów, te przeglądarki są gor- sze od IE6+, Firefoxa, Opery i Safari. Czy to oznacza, że jeśli nasz serwis odwiedzają użytkownicy tych przeglądarek, powinniśmy zapomnieć o stan- dardach sieciowych? A może powinniśmy zaproponować im dokonanie uak- tualnienia oprogramowania lub rezygnację z naszych usług? Nie. Projek- towanie zorientowane na standardy sieciowe nie oznacza i nie wymaga „projektowania wyłącznie dla najnowszych przeglądarek”. Nowoczesne przeglądarki i standardy sieciowe 41 Dziwny przypadek Internet Explorera 5 dla komputerów Macintosh Przeglądarka Internet Explorer 5 w wersji dla komputerów Macin- tosh, w równym stopniu wielbiona co piętnowana przez projektantów, zajmuje szczególne miejsce w historii standardów sieciowych. W la- tach 1990-tych inżynier Tantek Çelik był reprezentantem Microsoftu w ramach grup roboczych W3C HTML i CSS. Kiedy jego przełożeni zlecili mu zarządzanie zespołem tworzącym Internet Explorera 5 dla komputerów Macintosh, Tantek włożył w to zdanie całą swoją wiedzę i pasję do standardów sieciowych. Współpracował nawet bezpośrednio z kluczowymi członkami projektu standardów sieciowych w celu prze- testowania zgodności przeglądarki z nowatorskimi ówcześnie strona- mi opartymi na jednokolumnowym układzie CSS oraz obmyślenia roz- szerzeń interfejsu użytkownika, dzięki którym strony byłyby bardziej przystępne. W efekcie powstał produkt, który obsługiwał standardy sieciowe bardziej dogłębnie i z większą dokładnością niż jakikolwiek inny przed nim. Internet Explorer 5 dla Macintoshy, cieszący się spo- rym uznaniem od momentu udostępnienia w 2000 roku, był pierwszą przeglądarka zgodną ze standardami. Niefortunnie dla Tanteka zgodność ze standardami Internet Explore- ra 5 dla Macintoshy sprawiała, że Internet Explorer dla Windows wy- glądał przy nim jak zacofany starszy brat. Microsoft wynagrodził Çelika, zabraniając mu dalszych prac nad przeglądarką, zamrażając w ten sposób wszystkie błędy. Błędy te wyszły na jaw dopiero wówczas, gdy na rynku pojawiły się inne przeglądarki obsługujące standardy sieciowe i projektanci zaczęli poddawać CSS coraz cięższym próbom. Jak można się spodziewać, skoro inne przeglądarki były rozwijane, a Internet Explorer 5 dla Macintosha nie, grupa jego użytkowników stopniała. W styczniu 2006 roku Microsoft oficjalnie pogrzebał tą przeglądarkę. Współcześni projektanci zazwyczaj są bardziej sfrustrowani przez brak poprawnej obsługi złożonych układów CSS w tej przeglądarce niż zain- spirowani przez jej pionierską przeszłość. Aby oddać sprawiedliwość tej przeglądarce, należy nadmienić że przestrzeganie standardów przez In- ternet Explorer 5 dla Macintoshy zmusiło Microsoft do znacznej poprawy obsługi standardów w wersji przeglądarki dla Windows. Gdyby tak się nie stało, nadal tworzylibyśmy układy bazujące na tabelkach. 42 Rozdział 1 99,9 witryn wciąż jest przestarzałych Oprócz tego przydatne innowacje pochodzące z Internet Explorera 5 dla Macintoshy (jak narzędzie powiększenia tekstu) zostały zaadop- towane przez Firefoksa, Safari i większość innych nowoczesnych przeglądarek — aczkolwiek, co smutne, Microsoft nadal nie uznał za stosowne wprowadzenie ich do Internet Explorera dla Windows. Podobnie użycie języka XHTML i stylów CSS nie jest równoznaczne z igno- rowaniem użytkowników Netscape’a 4. Zaprojektowana i zbudowana zgod- nie ze standardami strona najprawdopodobniej nie będzie wyświetlana do- kładnie tak samo przez Netscape’a 4 i bardziej zgodne ze standardami przeglądarki. W zależności od przyjętej metody projektowej jej wygląd może być różny. Nie jest to jednak nic szczególnego. (Wyjaśnimy to w drugiej części książki). Nowy kod do nowej pracy Nowoczesne przeglądarki nie są jedynie nowszymi wersjami tej samej starej serii. Różnią się zdecydowanie od swoich poprzedniczek. W wielu przypad- kach zostały przebudowane od podstaw. Mozilla Firefox, Camino, Netsca- pe 7+ i przeglądarki bazujące na silniku Gecko nie są nowszymi wersjami Netscape Navigatora 4. IE5+/Mac nie był uaktualnioną wersją IE4/Mac. Opera 7 nie bazuje na tym samym kodzie, który „napędzał” poprzednie wersje przeglądarek Opera. Wszystkie zostały zbudowane na bazie nowe- go kodu w celu realizacji nowego zadania, a mianowicie zachowania jak największej zgodności ze standardami sieciowymi opisanymi w tej książce. Przeglądarki lat dziewięćdziesiątych ubiegłego stulecia skupiały się nato- miast na firmowych technologiach i nie zwracały zbytnio uwagi na standar- dy. Niektóre standardy były przez nie wręcz całkowicie ignorowane. Sytu- acja taka nie była jednak traktowana jako poważne utrudnienie w procesie projektowania. Jeżeli, na przykład, przeglądarka nie obsługiwała standardu PNG (ang. Portable Network Graphic), projektanci nie używali obrazków w tym formacie. Kłopot polegał na tym, że stare przeglądarki wyświadczały „niedźwiedzią” przysługę standardom, oferując jedynie ich częściową ob- sługę, często niezgodną z założeniami. Byle jakie wsparcie dla tak podsta- wowych standardów jak HTML stworzyło niejednorodne środowisko publi- kacji, a w konsekwencji nietrwałe metody produkcji. Kiedy pęka wyrostek robaczkowy u pacjenta, wykwalifikowani chirurdzy usuwają go całkowicie. Wyobraźmy sobie, co może się stać, kiedy żaden chirurg nie jest dostępny? Co będzie, kiedy pijany stażysta usunie zaledwie Problem „wersji” 43 połowę wyrostka, przy okazji dźgając kilka sąsiednich organów i na końcu zapominając zaszyć pacjenta? Porównanie jest trochę makabryczne, ale do- skonale oddaje podejście do obsługi standardów w starych przeglądarkach: niebezpiecznie niekompetentne, nieudolne i ryzykowne dla zdrowia całej sieci. Jeżeli Netscape 4 ignoruje reguły CSS zastosowane do znacznika body i dodaje losowe białe znaki do każdego elementu struktury na stronie, a IE4 traktuje ten znacznik prawidłowo, ale dla odmiany partaczy wyrów- nywanie, to którą wersję tych reguł należy zastosować w projekcie? Nie- którzy programiści w ogóle rezygnowali z CSS. Inni stosowali jeden arkusz stylów kompensujący błędy IE4 i drugi kompensujący gafy Netscape’a 4. Potrzebne było również stosowanie odmiennych stylów w zależności od tego, czy odwiedzający stronę jest użytkownikiem platformy Windows czy Macin- tosh — użytkownicy systemów Linux mieli pecha. CSS był zaledwie jedną z wielu przyczyn problemów. Przeglądarki nie po- trafiły jednakowo obsługiwać języka HTML, prezentować tabel lub inter- pretować języków skryptowych używanych do tworzenia interaktywnych ele- mentów strony. Nie istniał jeden sposób budowania struktury zawartości strony. (Dokładnie mówiąc, istniał taki sposób, ale nie był obsługiwany przez żadną z przeglądarek). Nie było żadnego ustalonego sposobu produkowa- nia stron (tzn. istniał, ale nie był obsługiwany przez przeglądarki) lub do- dawania zaawansowanych elementów do jej zawartości (także taki sposób istniał, lecz nie był rozpoznawany przez żadną ze starych przeglądarek). Projektanci i programiści, walczący z ciągle pojawiającymi się niezgodno- ściami, wypracowali praktykę tworzenia wersji kodu dostosowanych do po- trzeb każdej pojawiającej się przeglądarki. Było to wszystko, co w owym czasie mogliśmy zrobić, aby stworzyć witrynę dostępną dla więcej niż jednej przeglądarki lub systemu operacyjnego. Obecnie taka praktyka jest błędna, ponieważ nowoczesne przeglądarki obsługują te same otwarte standardy. Mimo to funkcjonuje nadal, pochłaniając zasoby, fragmentując sieć i gene- rując niedostępne, mało użyteczne witryny, których koszty nie są adekwatne do tego co oferują. Problem „wersji” Tworzenie wielu wersji niestandardowego kodu (każdej dostosowanej do niestandardowych dziwactw tej lub innej przeglądarki) stanowi źródło cią- głego starzenia się stron — plagi dotykającej większość witryn. Trudno zwyciężyć w grze, której cele i zasady zmieniają się w trakcie meczu. 44 Rozdział 1 99,9 witryn wciąż jest przestarzałych Mimo swojej kosztowności, bezsensowności i nietrwałości opisana prakty- ka nadal dominuje na rynku. Projektanci mający do czynienia z przeglą- darką obsługującą standardy sieciowe traktują ją jak jedną z tych, które nie posiadają tej cechy. Tworzą kod, aby sprawdzić, czy jest to IE6, i „karmią” ją skryptami obsługiwanymi wyłącznie przez wytwory firmy Microsoft, chociaż IE6 radzi sobie ze standardami ECMAScript i DOM. Następnie czują się zmuszeni do napisania oddzielnych procedur dokonujących detek- cji nowych przeglądarek bazujących na silniku Mozilli, chociaż te również potrafią obsłużyć wymienione standardy. Jak sugeruje powyższy przykład, większość kodu podpatrującego wersje przeglądarek i urządzeń oraz generującego indywidualny kod jest niepo- trzebna w obecnym klimacie tolerancji dla standardów. Nawet przy regu- larnych uaktualnieniach — na które niewielu właścicieli witryn może sobie pozwolić — skrypty dokonujące detekcji często zawodzą. Na przykład przeglądarka Opera dla systemów Windows i Macintosh iden- tyfikuje się jako Internet Explorer. Robi to głównie po to, aby uniknąć blokowania przez witryny (w szczególności należące do sektora bankowego), które dokonują detekcji IE. Jednak skrypty napisane dla IE mają ten- dencję do „wysypywania” się w Operze. Kiedy zatem zidentyfikuje się ona jako IE (jest to domyślne ustawienie po zainstalowaniu) witrynie, której programista napisał kod specjalnie pod IE, liczba powstałych błędów oraz poziom frustracji użytkownika rośnie bardzo szybko. Mają oni możliwość zmiany ustawień w taki sposób, aby Opera identyfikowała się swoją praw- dziwą tożsamością, zamiast podszywać się pod IE. O tej opcji wie jednak zaledwie garstka osób. Oprócz skryptów dokonujących detekcji programiści piszą również rozbu- dowany kod prezentacji strony, który wymaga większej przepustowości od łącza klienta pragnącego ściągnąć stronę, jak i od udostępniającego ją serwera. Rozbudowany kod zmniejsza dostępność strony dla wyszukiwarek oraz niestandardowych przeglądarek i urządzeń internetowych (przez co również jej zawartość jest trudniejsza do odnalezienia przez potencjalnych klientów). Stosowane strategie wywołują zatem często efekty, którym miały zapobiegać — niekonsekwentne prezentowanie witryn w różnych przeglą- darkach (rysunki 1.1 i 1.2). Rozbicie witryny na różne wersje niesie ze sobą ciągle rosnące koszty oraz trudne do rozwiązania problemy. Witryny „DHTML” produkowane z uwzględnieniem firmowych specyfikacji Netscape’a 4.0 i Internet Explo- rera 4.0 nie działają w większości nowoczesnych przeglądarek. Czy właściciel Problem „wersji” 45 Rysunek 1.1. W roku 2002 witryna MSN Game Zone (http://zone.msn.com/) obsługiwała 7 arkuszy stylów, prezentuje się jednak niepoprawnie w większości nowoczesnych przeglądarek. Chwali się 14 skryptami, wśród których jest bardzo opasły kod detekcji przeglądarek, ale nawet to jej nie pomaga. Jak widać, wykorzystaniedużej ilości kodu do rozwiązania problemu nie zawsze działa Rysunek 1.2. Uczciwie przyznaję, że poprzedni zrzut z ekranu pochodzi sprzed 4 lat. Obecnie ta sama strona wygląda jeszcze gorzej, gdy wrzucono na nią jeszcze więcej kodu. Sześć lat po tym, kiedy Microsoft wypuścił na rynek pierwszą przeglądarkę zgodną ze standardami, niektóre fragmenty witryny Microsoftu nadal nie przestrzegają podstawowych zasad projektowania w zgodzie ze standardami sieciowymi 46 Rozdział 1 99,9 witryn wciąż jest przestarzałych takiej witryny powinien wydać jeszcze więcej pieniędzy na rozwiązanie tego problemu, zlecając programistom stworzenie piątej lub szóstej wersji strony? A jeśli nie ma na to pieniędzy? Wielu użytkowników zostanie zablokowanych. Analogicznie projektanci mogą marnować wiele czasu i zasobów, tworząc „bezprzewodową” wersję swojej strony tylko po to, aby przekonać się, że zastosowany przez nich język znaczników jest przestarzały lub strona nie funkcjonuje w nowym urządzeniu internetowym. Niektórzy w odpowiedzi na ten problem tworzą kolejną wersję witryny. Inni publikują żenujące komu- nikaty obiecujące wsparcie dla nowego urządzenia „w najbliższej przyszłości”. Nawet jeśli programista lub projektant zetknie się ze standardowymi tech- nologiami sieciowymi, takimi jak XHTML i CSS, jego przyzwyczajenia pochodzące ze „starej” szkoły sprawiają, iż umyka mu sedno ich istnienia. Zamiast zastosować standardy do stworzenia jednej wersji, wielu progra- mistów tworzy nadal co najmniej kilka wersji plików CSS zależnych od przeglądarki i/lub platformy, które niemal nigdy nie działają w oczekiwa- ny sposób (rysunki 1.1 i 1.2). Stosując tego typu praktyki, marnujemy czas i pieniądze, których zwykle nie mamy w nadmiarze, wręcz przeciwnie. Oliwy do ognia dolewa fakt, że mimo wysokich kosztów stosowane praktyki nie rozwiązują problemu. Strony zachowują się niekonsekwentnie, a użytkownicy mają do nich utrud- niony dostęp. Myślenie wsteczne Zajrzyj do wnętrza jakiejkolwiek większej komercyjnej strony, takiej jak Amazon.com lub eBay.com. Zbadaj ich zawiły kod, osadzone kontrolki ActiveX i JavaScript (często zawierający źle działające skrypty rozpozna- wania przeglądarek), a także z założenia źle użyte style CSS — o ile w ogóle je zastosowano. To cud, że te strony działają w jakiejkolwiek przeglądarce! Działają, ponieważ pierwsze cztery lub pięć pokoleń przeglądarek Netscape Navigator oraz Internet Explorer toleruje jedynie specyficzny dla siebie kod. Taka sytuacja wręcz zachęcała do niechlujnego kodowania i tworzenia skryptów zależnych od producenta oprogramowania, aby zwyciężyć w ryn- kowej wojnie przeglądarek. Często niezgodne ze standardami witryny działają, ponieważ ich właściciele zainwestowali w drogie narzędzia do publikacji, które niwelują różnice mię- dzy przeglądarkami przez generowanie wielu wersji kodu dostosowanego do danej przeglądarki lub platformy (patrz „Problem wersji”). Myślenie wsteczne 47 Znam wiele firm, które wydały ponad milion dolarów na przesadnie złożone, ale niespecjalnie użyteczne systemy zarządzania treścią (CMS, ang. content management system). Twórcy takich monstrualnych programów częściowo usprawiedliwiają ich oburzające koszty, wskazując na możliwość mozolne- go generowania wszelkiego rodzaju niestandardowych wersji kodu. Poza marnotrawstwem ogromnych ilości gotówki taka praktyka szkodzi także możliwości przeszukiwania takich stron przez zatopienie sensownych treści w morzu nic nieznaczących znaczników (rysunek 1.3). Najbardziej ze wszyst- kich taka praktyka wystawia na próbę cierpliwość użytkownika korzystają- cego z modemowego dostępu do sieci przez zapychanie łącza rozwidlonym kodem, zagnieżdżonymi tabelami, przeróżnymi sztuczkami z obrazkami, a także przestarzałymi znacznikami i atrybutami. Rysunek 1.3. Szybko! Spróbuj znaleźć na tej stronie ważne dla Yahoo informacje o „Osobistości roku” pośród jej zagmatwanej, niestrukturalnej składni HTML z 2001 roku. Podpowiedź: Jeśli ty masz trudności z jej odnalezieniem, tak samo trudne będzie to dla czytników i wyszukiwarek (Yahoo.com) 48 Rozdział 1 99,9 witryn wciąż jest przestarzałych Co to jest rozwidlanie kodu? Kod stanowi podstawę każdego oprogramowania, systemu operacyjne- go, generalnie mówiąc wszystkiego, co ma jakikolwiek związek z tech- niką cyfrową. Kiedy nad projektem pracuje więcej niż jedna grupa pro- gramistów, kod może „rozwidlić” się na kilka niezgodnych ze sobą wersji, szczególnie jeśli każda grupa próbuje rozwiązać inny problem lub przy- chylić się do ustaleń, o których inni nie słyszeli. Taki brak konsekwencji oraz sprawowania centralnej władzy nad kodem jest rzeczą złą. W tej książce termin rozwidlanie kodu oznacza praktykę polegającą na tworzeniu kilku różnych wersji kodu na potrzeby przeglądarek, które nie obsługują standardów ECMAScript i DOM (patrz „Problem wersji” powyżej). Kilka wersji kodu (który trzeba przesłać każdemu użytkownikowi) obciąża łącze właściciela witryny, podnosząc drastycznie koszty utrzymania serwisu. Im większa strona i większy ruch na niej, tym więcej pieniędzy trzeba wydać na utrzymanie serwerów wykonujących zadania, których można uniknąć. Liczby nie kłamią. Jeżeli strona zredukuje swój kod o 35 , zredukuje rów- nież o tyle samo koszty utrzymania łącza. Firma wydająca 10 000 zł rocznie mogłaby zaoszczędzić 3 500 zł. Przy wydatkach rzędu 640 000 zł oszczęd- ności wynoszą 224 000 zł. Strona domowa Yahoo (rysunek 1.4) jest ładowana miliony razy dziennie. Każdy bajt zmarnowany na przestarzały kod przemnożony przez astro- nomiczną liczbę odsłon daje w wyniku gigabajty danych przesyłanych bez potrzeby. Można sobie tylko wyobrazić koszty ponoszone z tytułu takiego marnotrawstwa. Gdyby Yahoo zastąpiło jedynie niestosowane już znacz- niki font (rysunki 1.3 i 1.5) przez wydajne style CSS, koszt ładowania każdej strony zmalałby wielokrotnie, a zyski firmy w konsekwencji wzro- słyby. Dlaczego zatem Yahoo nie wykonało takiego kroku? Tylko jedna odpowiedź wydaje się prawdziwa — firma pragnie, aby stro- na wyglądała dokładnie tak samo w starych przeglądarkach nieobsługują- cych CSS, jak i w nowych zachowujących zgodność z tym standardem. Ironia polega na tym, że nikt poza zarządem Yahoo nie przejmuje się jej wyglądem. Wiadomo bowiem, że olbrzymiego sukcesu witryna nie zawdzię- cza wcale szacie graficznej, lecz oferowanym usługom. Myślenie wsteczne 49 Rysunek 1.4. Strona domowa Yahoo (http:// www.yahoo.com/) Rysunek 1.5. Yahoo od środka. Zobacz źródło, a przekonasz się, że kod służący do stworzenia tej prosto wyglądającej strony jest niewyobrażalnie skomplikowany. Mimo że Yahoo zaczęło w końcu używać CSS, robi to w najmniej wydajny sposób — nadal używa znaczników font oprócz reguł CSS! 50 Rozdział 1 99,9 witryn wciąż jest przestarzałych Przykład tej, skądinąd interesującej, firmy (marnującej swoje łącza na dostarczanie wyglądu i zachowania1, którego nikt tak naprawdę nie po- dziwia) mówi wszystko o zakorzenionym w umysłach projektantów podzi- wie dla „zgodności wstecz” i jej związku z użytecznością witryn oraz wła- snymi zyskami. Przestarzałe znaczniki: dodatkowy koszt dla właścicieli witryn Załóżmy, że kod jednej strony zbudowanej według starych zasad zajmuje 60 kB. Zastąpienie znaczników font oraz innych przestarzałych znacz- ników czystym kodem z kilkoma regułami CSS zmniejsza rozmiar strony do 30 kB. (W praktyce możliwe jest zredukowanie 60-kilobajtowej strony do 22 kB lub nawet mniej, ale dla zachowania łatwości obliczeń przyjmijmy okrągłą liczbę, która reprezentuje oszczędności łącza internetowego rzędu 50 ). Rozważmy dwa typowe scenariusze przedstawione poniżej. Redukcja łącza Scenariusz: Samodzielnie utrzymywana witryna małego przedsiębiorstwa lub witryna należąca do sektora publicznego obsługuje ciągły strumień odwiedzających — kilkaset odsłon w danej chwili. Po zredukowaniu roz- miaru stron o połowę — poprzez konwersję znaczników prezentacji strony — do zwięzłego, czystego kodu XHTML firma oszczędza 1500 zł miesięcznie. Jak to działa: Aby obsłużyć klientów przed konwersją, witryna potrzebo- wała dwóch linii T1 (1,544 Mb/s). Koszt dzierżawy każdej z nich wynosi 1500 zł na miesiąc. Po „ogoleniu” plików i zredukowaniu ich rozmiaru o 50 , firma dochodzi do wniosku, że jest w stanie obsłużyć tę samą licz- bę klientów przez jedno łącze T1, tym samym redukując swoje koszty ope- racyjne o 1500 zł miesięcznie. Oprócz kosztów dzierżawy łącza zmniejszą się również nakłady na sprzęt komputerowy. Im prostszy jest kod strony, tym szybciej jest ona dostarczana do użytkownika. Im szybciej jest do- starczana, tym mniej obciąża serwer — trzeba kupić, serwisować i mody- fikować mniej serwerów. Jest to szczególnie istotne w przypadku serwerów, które muszą generować dynamiczną, sterowaną bazami danych zawartość — czyli zawartość, jaką posługują się niemal wszystkie współczesne witryny komercyjne (w tym większość blogów). 1 Wszystkich interaktywnych cech witryny, jakie można stworzyć przy użyciu HTML-a i JavaScriptu — przyp. tłum. Myślenie wsteczne 51 Licznik megabajtów Scenariusz: W miarę rozwoju komercyjnie hostowanej witryny jej właści- ciele dochodzą do wniosku, że każdego miesiąca płacą nieuzasadnioną karę za transfer plików, wynoszącą dziesiątki, a nawet setki złotych. Obcięcie rozmiaru plików o połowę sprowadza wysokość płaconych rachunków do przyzwoitego poziomu. Kod skondensowany a kod skompresowany Gdy wygłosiłem wykład na temat standardów sieciowych, podszedł do mnie jeden z słuchaczy twierdząc, iż zyski wynikające ze stosowania czystego i dobrze ułożonego kodu nie są większe niż w przypadku sto- sowania kompresji kodu HTML. Oprócz kondensowania kodu przez pisanie go w sposób przejrzysty i zwięzły (tzn. stosowanie struktur semantycznych zamiast przesta- rzałego formatowania z użyciem języka HTML), można również zwy- czajnie skompresować kod w niektórych systemach serwerowych. Na przykład Apache oferuje moduł mod_zip kompresujący pliki HTML po stronie serwera. HTML jest ponownie rozpakowywany po stro- nie klienta. Programista, z którym rozmawiałem, podał następujący przykład: je- żeli Amazon.com marnuje 40 kB na przestarzałe znaczniki oraz inne „śmieci”, ale używa modułu mod_zip i kompresuje pliki do rozmiaru 20 kB, to nadmiarowy kod stron tej witryny nie generuje wydatków, o których mówiłem na wykładzie oraz w tej książce. Jak się okazało, Amazon nie używa modułu mod_zip. W rzeczywistości narzędzie to jest rzadko używane w komercyjnych witrynach, przypusz- czalnie ze względu na dodatkowe obciążenie związane z koniecznością kompresowania plików przed wysłaniem ich w świat. Wracając jednak do dyskusji z programistą, im mniejszy jest plik, tym lepiej zostanie skompresowany. Jeżeli oszczędzamy, kompresując 80-kilobajtowy pliku do rozmiaru 40 kB, wyobraźmy sobie, ile możemy zaoszczędzić, kom- presując 40 kB do 20 kB. Oszczędności w pojedynczej sesji mogą wy- dawać się małe, ale ich wartość kumuluje się. Z czasem mogą znacz- nie zredukować koszty operacyjne i zapobiec innym wydatkom (na przykład dzierżawie dodatkowego łącza w celu zwiększenia przepusto- wości serwerów). Oszczędności na łączu internetowym są tylko jedną z korzyści płyną- cych z pisania czystego, dobrze ułożonego kodu, bardzo docenianą przez księgowych oraz klientów i równie prawdziwą dla tych, którzy stosują kompresję HTML-a. 52 Rozdział 1 99,9 witryn wciąż jest przestarzałych Jak to działa: Wiele firm oferujących usługi hostingowe przydziela swoim użytkownikom „wolny” od opłat miesięczny limit transferu plików — na przykład do 3 GB. Poniżej tej wartości płacimy zwykłą stawkę miesięczną. Za przekroczenie limitu pobierane są dodatkowe opłaty, czasami bardzo duże. W jednym „niesławnym” przypadku firma hostingowa znokautowała nieza- leżnego projektanta Ala Sacui szesnastoma tysiącami dolarów dodatkowych opłat, kiedy jego niekomercyjna strona, Nosepilot.com, przekroczyła dozwo- lony miesięczny limit transferu plików. Jest to przypadek ekstremalny, a klientowi ostatecznie udało się uniknąć zapłacenia kary dzięki udowod- nieniu firmie zmiany warunków oferowanej usługi bez powiadomienia klien- tów. Kogo jednak stać na ryzyko płacenia niewyobrażalnych rachunków lub rozprawiania się z nieuczciwą firmą w sądzie? Oczywiście nie każda firma hostingowa stosuje podobne praktyki. Pair.com na przykład obciąża klienta opłatą 4,95 dolarów za każdy megabajt ponad limit. Większe witryny, z większym ruchem na stronach oszczędzają najwię- cej przez redukowanie rozmiaru plików. Niezależnie od tego, czy strona jest mała czy duża, odwiedzana przez miliony czy też przez garstkę ludzi, im mniejszy rozmiar plików, tym mniejszy ruch w sieci i mniejsze prawdo- podobieństwo przekroczenia limitów. A już zupełnie na marginesie, najlepiej wybrać firmę, która stosuje nielimitowane transfery plików, zamiast karać swoich klientów za tworzenie popularnych stron. Zgodność wstecz Co programiści uważają za „zgodność wstecz”? Zapytani odpowiedzą: „za- pewnienie obsługi wszystkim użytkownikom”. I jak tu spierać się z takim argumentem? W praktyce jednak „zgodność wstecz” oznacza stosowanie niestandardo- wych, zastrzeżonych (lub niepraktykowanych) znaczników oraz kodu, aby każdy użytkownik odwiedzający witrynę mógł doświadczyć tego samego, niezależnie od tego, czy używa IE2 czy Firefox 8.5. Zasada „zgodności wstecz” — traktowana jako święty Graal programowania — brzmi nieźle w teorii. Jednak jej koszt jest zbyt wysoki, a ona sama od zawsze opiera się na fałszywym założeniu. Nie istnieje prawdziwa zgodność wstecz. Zawsze istnieje punkt „odcięcia”. Na przykład ani Mosaic (pierwsza przeglądarka graficzna), ani Netscape 1.0 nie obsługują układów opartych na tabelach HTML-owych. Zatem użytkow- nicy tych archaicznych przeglądarek nie mogą zobaczyć tego samego, co użytkownicy odrobinę nowszych narzędzi typu Netscape 1.1 lub MSIE 2. Myślenie wsteczne 53 Programiści i klienci głoszący ideę zgodności zmuszeni są do określenia „ba- zowej” przeglądarki, na przykład Netscape 3, i przyjęcia, że jest to naj- wcześniejsza przeglądarka, która obsługiwać będzie ich stronę (użytkownicy Netscape’a 2 nie mają szczęścia). Aby wypełnić zobowiązanie obsługi prze- glądarki bazowej, wprowadzają do kodu szereg sztuczek, niestandardowych trików i okrężnych rozwiązań, które zwiększają ciężar każdej strony. Jednocześnie piszą kilka skryptów, które rozpoznają typ przeglądarki i za- silają ją odpowiednim kodem. To dodatkowo zwiększa rozmiar stron, nakła- da obciążenia na serwery i zapewnia nieustający proces starzenia się wi- tryny aż do wyczerpania pieniędzy lub wypadnięcia z branży. Blokowanie użytkowników nie wpływa dobrze na interesy Podczas gdy niektóre firmy dokonują zamachu na swoje dochody, próbując zapewnić wsparcie nawet dla najstarszej przeglądarki, inne decydują się na obsługę wyłącznie jednej z nich. Ze względu na błędne założenia rośnie liczba stron projektowanych wyłącznie do współpracy z Internet Explo- rerem (czasem wyłącznie na platformie Windows), blokując tym samym 15 – 25 potencjalnych użytkowników i klientów (rysunki 1.6, 1.7, 1.8, 1.9, 1.10 i 1.11). Rysunek 1.6. Strona domowa KPMG (http://www.kpmg.com/) z roku 2003 przeglądana w Navigatorze. Zupełna rozsypka układu jest efektem zastosowania kodu działającego wyłącznie w IE Nie będę udawać, że rozumiem podejście biznesowe firmy, która z założe- nia mówi NIE jednej czwartej swoich potencjalnych klientów. Tak duża liczba klientów stracona przez krótkowzroczne podejście nie powinna być 54 Rozdział 1 99,9 witryn wciąż jest przestarzałych Rysunek 1.7. Serwis KPMG jest równie bezużyteczny w Netscapie 7 Rysunek 1.8. Jeśli ta strona była przeznaczona tylko dla Internet Explorera, to jak działała w Internet Explorerze 5 dla komputerów Macintosh? Jak widać, nie za bardzo akceptowana przez żadnego racjonalnego przedsiębiorcę lub instytucję pu- bliczną z mandatem służenia społeczeństwu. Według statystyk sporządza- nych przez NUA Internet Surveys (http://www.nua.ie/surveys/) ponad 650 milionów ludzi korzysta z internetu (wrzesień 2002). Sam policz, czy to się opłaca. Powiedz, że nie przejmujesz się utratą 25 użytkowników, którzy pragną odwiedzić twoją stronę. Podejście „tylko IE” jest pozbawione sensu również dlatego, że nie istnieje gwarancja, że Internet Explorer (lub nawet prze- glądarki dla komputerów stacjonarnych jako kategoria oprogramowania) Myślenie wsteczne 55 Rysunek 1.9. Ta sama strona widziana przez IE6/Windows. Tutaj serwis w końcu działał Rysunek 1.10. Serwis poniekąd działał również w Operze 7 dla Windows, kiedy ta identyfikowała się jako IE (kiedy Opera identyfikuje się jako ona sama, serwis przestaje działać) będą dominować w przyszłości. Z jednej strony, w chwili pisania tej książki Firefox nieustannie odbiera udziały w runku Internet Explorer. Z drugiej — coraz więcej osób korzysta z internetu przy użyciu urządzeń mobilnych. W Stanach Zjednoczonych liczba urządzeń stacjonarnych podłączonych do internetu nadal przewyższa liczbę urządzeń mobilnych — w Japonii sytu- acja jest odwrotna. Mimo że stosunek ten ciągle się zmienia, ogólny trend wskazuje na urządzenia mobilne (www.gotmobile.com). W miarę jak wszech- obecny dostęp do internetu zyskuje akceptację i stwarza nowe rynki zbytu, pomysł uwzględniania w projekcie dziwactw jakiejkolwiek przeglądarki wy- daje się coraz bardziej przeżytkiem 20-tego wieku i staje się coraz mniej sensowny. 56 Rozdział 1 99,9 witryn wciąż jest przestarzałych Rysunek 1.11. Po gruntownym przeprojektowaniu nowa strona KPMG wygląda poprawnie i działa dobrze w wielu przeglądarkach na różnych platformach. Stało się tak za sprawą uaktualnionej składni, nieograniczonej tylko do Internet Explorera Poza tym, co pokaże niniejsza książka, standardy umożliwiają projekto- wanie dla wszystkich przeglądarek i urządzeń z łatwością i szybkością, z jaką robi się to obecnie dla jednej z nich. Gdzieś pomiędzy nakręcającą koszty zgodnością wstecz a krótkowzrocznością polegającą na budowaniu dla jednej przeglądarki znajduje się jedyne słuszne rozwiązanie — projektowanie z uży- ciem standardów sieciowych. Zarówno technika tworzenia wielu wersji witryny, jak i jawnie podejmowa- nie decyzji obsługi wyłącznie jednej przeglądarki nie pomogą dzisiejszym witrynom funkcjonować w świecie przyszłego oprogramowania oraz rozwijać się w ciągle ewoluującym świecie urządzeń mobilnych. Jeżeli obecne metody będą kontynuowane, koszty oraz złożoność witryn będzie wzrastać do mo- mentu, kiedy na ich tworzenie stać będzie wyłącznie największe firmy. W naszych wysiłkach oferowania jednak
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Projektowanie serwisów WWW. Standardy sieciowe. Wydanie II
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: