Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Projektowanie serwisw
WWW. Standardy sieciowe
Autor: Jeffrey Zeldman
Tumaczenie: Janusz Grabis (rozdz. 19),
Szymon Kobalczyk (rozdz. 1016, dod. A)
ISBN: 83-7361-394-3
Tytu oryginau: Designing with Web Standards
Format: B5, stron: 408
Tworzenie serwisw WWW moe by bardzo frustrujcym zajciem. Jake czsto
spotykamy si z sytuacj, kiedy dopracowany i przetestowany w jednej przegldarce
serwis WWW wyglda koszmarnie w innej? Ile razy trzeba byo przepisywa kod
serwisu z powodu pojawienia si nowej przegldarki i nowych moliwoci?
Najwyszy czas na zmian. Standardy projektowania serwisw WWW opracowano
wanie po to, aby takie sytuacje nie miay miejsca. Maj one pomc projektantowi
w tworzeniu serwisw WWW, ktre bd wyglda tak samo dobrze w kadej
przegldarce i na kadym urzdzeniu.
Ksika ta jest nieocenionym rdem informacji dla kadego projektanta serwisw
WWW. Zawarte w niej informacje umoliwi stworzenie serwisu, ktry nie tylko bdzie
uniwersalny, czytelny, atwy w nawigacji, testowaniu i aktualizowaniu, ale take zgodny
ze wszystkimi wytycznymi konsorcjum W3C dotyczcymi projektowania sieciowego.
Czytajc t ksik, dowiesz si:
Dlaczego Twoje serwisy WWW wygldaj inaczej w rnych przegldarkach
Czym kieruj si twrcy standardw sieciowych
Jakie problemy wystpiy przy pierwszych prbach znormalizowania
metod projektowania
Jak stworzy czytelny i uniwersalny kod z wykorzystaniem jzyka XHTML
W jaki sposb stworzy strony WWW tak, aby byy poprawnie wywietlane
na rnych urzdzeniach
Jak zdefiniowa wygld strony za pomoc stylw CSS
Jak poradzi sobie z rnymi przegldarkami
Jak rozwiza problemy zwizane z czcionkami na stronach WWW
W jaki sposb zaimplementowa w serwisie WWW mechanizmy uatwie dostpu
Jak wykorzysta na stronie skrypty oparte na modelu DOM
(Document Object Model)
Dodatkowym, bardzo pomocnym materiaem, jest zestawienie informacji o uywanych
obecnie przegldarkach internetowych.
Spis treci
O Autorze ........................................................................................ 13
Wprowadzenie ................................................................................. 15
Nie wszystko dla wszystkich.............................................................................................15
Teoria a praktyka ........................................................................................................16
Ukady hybrydowe: rychy koniec? ............................................................................16
Cigo, nie zbir sztywnych regu .................................................................................19
Pokazuj, nie sprzedawaj..............................................................................................19
Niech praca sprzedaje si sama...................................................................................20
Sprzeda domowa .......................................................................................................21
Zapach zmian ....................................................................................................................21
Cz I
Spis treci
5
Pi spraw wiadczcych o potdze technologii ......................................................111
Pokana dawka wynalazkw ....................................................................................112
Narzdzia do publikacji dla caej reszty ...................................................................113
Do twoich usug ........................................................................................................115
XML a twoja witryna ......................................................................................................115
Cigle w fazie przedszkola .......................................................................................116
Zgodny z natury ..............................................................................................................116
Era wsppracy................................................................................................................117
Testy i specyfikacje...................................................................................................117
Jak mona ze sob wsppracowa? .........................................................................118
Standardy sieciowe i narzdzia .......................................................................................119
Grupa zadaniowa Dreamweaver ...............................................................................120
Narzdzia WYSIWYG przeomu wiekw (dwa z trzech nienajgorsze)...................121
FrontPage: niezgodny z zaoenia ............................................................................121
Nadejcie ukadw CSS ..................................................................................................122
Kampania uaktualniania przegldarek......................................................................122
Pocztek potopu ........................................................................................................125
Skd czerpa style? ...................................................................................................126
Chwilowa moda o ustalonym przeznaczeniu........................................................129
Upowszechnianie standardw sieciowych ......................................................................130
Witryny komercyjne daj si ponie fali.................................................................132
Wired Digital zmienia technologi ...........................................................................133
cznie standardw z metodami tradycyjnymi ........................................................135
Do akcji wkracza W3C .............................................................................................137
Podsumowanie ................................................................................................................137
Cz II
Spis treci
Spis treci
9
Prosz, DOM, nie zrb im krzywdy................................................................................345
Pokazywanie i ukrywanie................................................................................................349
Dynamiczne menu (opuszczane i rozwijane)..................................................................353
Przeczniki stylw: uatwiaj dostp, oferuj wybr.....................................................354
Dodatki .......................................................................................389
Dodatek A Nowoczesne przegldarki: dobre, ze i okropne................................ 391
Zgodne przegldarki: pierwsza fala ................................................................................392
Opera 7......................................................................................................................392
MSIE5+/Macintosh...................................................................................................392
Netscape 6+...............................................................................................................393
Mozilla 1.5 ................................................................................................................393
Safari .........................................................................................................................394
MSIE 6/Windows......................................................................................................394
MSIE 5.5/Windows...................................................................................................395
MSIE 5/Windows......................................................................................................395
Netscape 4.................................................................................................................396
MSIE 4 ......................................................................................................................396
Skorowidz...................................................................................... 397
Rozdzia 1.
99,9% witryn
jest przestarzaych
Jest taka choroba, ktra dotyka niemal kadej witryny znajdujcej si obecnie w sieci,
od najskromniejszej strony domowej po portale korporacyjnych gigantw. Przebiega
i podstpna, rozprzestrzenia si niemal nierozpoznana, poniewa bazuje na standardach
przemysu sieciowego. Chocia projektanci i waciciele stron mog o tym jeszcze nie
wiedzie, 99,9% witryn jest przestarzaych.
Strony mog wyglda i zachowywa si prawidowo w popularnych przegldarkach,
ktrych wersje s oznaczone cyfr 4 lub 5. Ale poza tym tolerujcym bdy rodowiskiem
zaczynaj by ju widoczne symptomy choroby i rozkadu.
W nowych wersjach przegldarki Microsoft Internet Explorer, Opera Software, Netscape
Navigator i Mozilla (przegldarka typu open source bazujca na silniku Gecko, ktrego
kod jest sterownikiem midzy innymi takich rodowisk jak Navigator, CompuServe,
AOL dla OS X, AOL China) starannie zbudowane ukady stron zaczynaj si rozpada,
a kosztowne mechanizmy zachowa przestaj funkcjonowa. Wraz z ewolucj tych
przegldarek wydajno stron bdzie stale spada.
W mniej znanych przegldarkach, urzdzeniach przystosowanych do potrzeb osb niepenosprawnych, a take w zyskujcych popularno palmtopach czy telefonach komrkowych z dostpem do sieci, wikszo stron nigdy nie dziaaa, podczas gdy marginalna
ich cz dziaa doskonale. W zalenoci od potrzeb i budetu waciciele witryn oraz
sami projektanci ignorowali tego typu rodowiska lub zauwaali ich istnienie i zasilali
je specjalnie przygotowanym kodem w taki sam sposb, jak dla zwykych przegldarek.
Aby zrozumie bezsens takich dziaa i zobaczy, w jaki sposb zwikszaj one koszty
i komplikuj rozwj witryny, nigdy nie doprowadzajc do osignicia zamierzonego
celu, musimy przeanalizowa zachowanie nowoczesnych przegldarek i dostrzec rnice
wystpujce midzy nimi a ich starszymi niezgodnymi wersjami.
36
Nowoczesne przegldarki
i standardy sieciowe
Mwic w tej ksice o nowoczesnych lub zgodnych ze standardami przegldarkach,
bdziemy mie na myli przegldarki, ktre rozpoznaj oraz obsuguj HTML i XHTML,
kaskadowe arkusze stylw (CSS), ECMAScript oraz model obiektw dokumentu (W3C
DOM). Wszystkie standardy zebrane razem pozwol nam wznie si ponad prezentacyjny ukad znacznikw, niezgodne jzyki skryptowe oraz bdcy ich wynikiem nieustajcy proces starzenia si witryn.
Do nowoczesnych przegldarek zaliczaj si midzy innymi: Mozilla 1.0+, Netscape
Navigator 6+, Microsoft Internet Explorer 6+ dla Windows, Microsoft Internet Explorer 5+ dla komputerw Macintosh i nowsze oraz Opera 7. Porwnanie najnowszych, zgodnych ze standardami przegldarek zostao umieszczone w dodatku A ksiki Nowoczesne
przegldarki: dobre, ze i okropne. Nie jest to lista wyczerpujca. Kada prba wyliczenia wszystkich przegldarek zgodnych ze standardami jest z gry skazana na niepowodzenie. Mimo e bdziemy stosowa termin zgodna ze standardami, prosz pamita o tym, co zostao powiedziane we wstpie: adna z przegldarek nie jest i nie
moe by cakowicie zgodna ze standardami.
Brak perfekcji przegldarek nie zwalnia z denia do zgodnoci ze standardami. Miliony
ludzi uywaj obecnie Internet Explorera 5 i 5.5 dla Windows. Jeli chodzi o zachowanie standardw, te przegldarki s gorsze od IE6/Windows, Netscape 6+ itd. Czy
to oznacza, e jeli nasz serwis odwiedzaj uytkownicy tych przegldarek, powinnimy
zapomnie o standardach sieciowych? A moe powinnimy zaproponowa im dokonanie
uaktualnienia oprogramowania lub rezygnacj z naszych usug? Nie. Projektowanie zorientowane na standardy sieciowe nie oznacza i nie wymaga projektowania wycznie
dla najnowszych przegldarek. Uycie jzyka XHTML i stylw CSS nie jest rwnoznaczne z ignorowaniem uytkownikw Netscapea 4. Zaprojektowana i zbudowana
zgodnie ze standardami strona najprawdopodobniej nie bdzie wywietlana dokadnie
tak samo przez Netscapea 4 i bardziej zgodne ze standardami przegldarki. W zalenoci od przyjtej metody projektowej jej wygld moe by rny. Nie jest to jednak nic
szczeglnego. Wyjanimy to w drugiej czci ksiki Projektowanie i budowanie.
37
Przegldarki lat dziewidziesitych ubiegego stulecia skupiay si natomiast na firmowych technologiach i nie zwracay zbytnio uwagi na standardy. Niektre standardy byy
przez nie wrcz cakowicie ignorowane. Sytuacja taka nie bya jednak traktowana jako
powane utrudnienie w procesie projektowania. Jeeli, na przykad, przegldarka nie
obsugiwaa standardu PNG (ang. Portable Network Graphic), projektanci nie uywali
obrazkw w tym formacie. Kopot polega na tym, e stare przegldarki wywiadczay niedwiedzi przysug standardom, oferujc jedynie ich czciow obsug,
czsto niezgodn z zaoeniami. Byle jakie wsparcie dla tak podstawowych standardw
jak HTML stworzyo niejednorodne rodowisko publikacji, a w konsekwencji mao
trwae metody produkcji.
Kiedy pka wyrostek robaczkowy u pacjenta, wykwalifikowani chirurdzy usuwaj go
cakowicie. Wyobra sobie teraz, e zamiast nich zabieg wykonuje staystka. Usuwa
zaledwie poow organu, przy okazji dgajc kilka ssiednich i na kocu zapominajc
zaszy pacjenta. Porwnanie jest troch makabryczne, ale doskonale oddaje podejcie
do obsugi standardw w starych przegldarkach: niebezpiecznie niekompletne, nieudolne
i ryzykowne dla zdrowia caej sieci.
Jeeli Netscape 4 ignoruje reguy CSS zastosowane do znacznika i dodaje losowe
biae znaki do kadego elementu struktury na stronie, a IE4 traktuje ten znacznik prawidowo, ale dla odmiany partaczy wyrwnywanie, to ktr ich wersj naley zastosowa
w projekcie? Niektrzy programici w ogle rezygnowali z CSS. Inni stosowali jeden
arkusz stylw kompensujcy bdy IE4 i drugi kompensujcy gafy Netscapea 4. Potrzebne byo rwnie stosowanie odmiennych stylw w zalenoci od tego, czy odwiedzajcy stron jest uytkownikiem platformy Windows czy Macintosh (uytkownicy
systemw Unix i Linux nie byli w ogle brani pod uwag).
Problemy z arkuszami stylw byy zaledwie kropl w morzu. Przegldarki nie potrafiy jednakowo obsugiwa jzyka HTML, prezentowa tabel lub interpretowa
jzykw skryptowych uywanych do tworzenia interaktywnych elementw strony.
Nie istnia jeden sposb budowania struktury zawartoci strony. (Dokadnie mwic, istnia taki sposb, ale nie by obsugiwany przez adn z przegldarek.) Nie
byo adnego ustalonego sposobu produkowania stron (tzn. istnia, ale nie by obsugiwany przez przegldarki) lub dodawania zaawansowanych elementw do jej
zawartoci (take taki sposb istnia, lecz nie by rozpoznawany przez adn ze starych przegldarek).
Projektanci i programici, walczcy z cigle pojawiajcymi si niezgodnociami, wypracowali praktyk tworzenia wersji kodu dostosowanych do potrzeb kadej pojawiajcej
si przegldarki. Byo to wszystko, co w owym czasie moglimy zrobi, aby stworzy
witryn dostpn dla wicej ni jednej przegldarki lub systemu operacyjnego. Obecnie
taka praktyka jest bdna, poniewa nowoczesne przegldarki obsuguj te same otwarte
standardy. Mimo to funkcjonuje nadal, pochaniajc zasoby, fragmentujc sie i generujc niedostpne, mao uyteczne witryny.
38
Problem wersji
Tworzenie wielu wersji niestandardowego kodu (kadej dostosowanej do niestandardowych dziwactw tej lub innej przegldarki) stanowi rdo cigego starzenia si stron
plagi dotykajcej wikszo witryn. Trudno zwyciy w grze, ktrej cele i zasady
zmieniaj si w trakcie meczu.
Mimo swojej kosztownoci, bezsensownoci i nietrwaoci opisana praktyka nadal dominuje na rynku. Projektanci majcy do czynienia z przegldark obsugujc standardy
sieciowe traktuj j jak jedn z tych, ktre nie posiadaj tej cechy. Tworz kod, aby
sprawdzi, czy jest to IE6, i karmi j skryptami obsugiwanymi wycznie przez
wytwory firmy Microsoft, chocia IE6 radzi sobie ze standardami ECMAScript i DOM.
Nastpnie czuj si zmuszeni do napisania oddzielnych procedur dokonujcych detekcji
nowej przegldarki Netscape, chocia ta rwnie potrafi obsuy wymienione standardy.
Jak sugeruje powyszy przykad, wikszo kodu podpatrujcego wersje przegldarek
i urzdze oraz generujcego indywidualny kod jest niepotrzebna w obecnym klimacie
tolerancji dla standardw. Nawet przy regularnych uaktualnieniach na ktre niewielu
wacicieli witryn moe sobie pozwoli skrypty dokonujce detekcji czsto zawodz.
Na przykad przegldarka Opera dla Windows identyfikuje si jako Internet Explorer.
Robi to gwnie po to, aby unikn blokowania przez witryny (w szczeglnoci nalece do sektora bankowego), ktre dokonuj detekcji IE. Jednak skrypty napisane dla IE
maj tendencj do wysypywania si w Operze. Kiedy zatem zidentyfikuje si ona
jako IE (jest to domylne ustawienie po zainstalowaniu) witrynie, ktrej programista
napisa kod specjalnie pod IE, liczba powstaych bdw oraz poziom frustracji uytkownika ronie bardzo szybko. Maj oni moliwo zmiany ustawie w taki sposb, aby
Opera identyfikowaa si swoj prawdziw tosamoci, zamiast podszywa si pod
IE. O tej opcji wie jednak zaledwie garstka osb.
Oprcz skryptw dokonujcych detekcji programici pisz rwnie rozbudowany kod
prezentacji strony, ktry wymaga wikszej przepustowoci od cza klienta pragncego
cign stron, jak i od udostpniajcego j serwera. Rozbudowany kod zmniejsza
dostpno strony dla wyszukiwarek oraz niestandardowych przegldarek i urzdze internetowych. Stosowane strategie wywouj zatem czsto efekty, ktrym miay zapobiega niekonsekwentne prezentowanie witryn w rnych przegldarkach (rysunek 1.1.).
Rozbicie witryny na rne wersje niesie ze sob cigle rosnce koszty oraz trudne do
rozwizania problemy. Witryny DHTML produkowane z uwzgldnieniem firmowych
specyfikacji Netscapea 4.0 i Internet Explorera 4.0 nie dziaaj w wikszoci nowoczesnych przegldarek. Czy waciciel takiej witryny powinien wyda jeszcze wicej
pienidzy na rozwizanie tego problemu, zlecajc programistom stworzenie pitej lub
szstej wersji strony? A jeli nie ma na to pienidzy? Wielu uytkownikw zostanie
zablokowanych.
Analogicznie projektanci mog marnowa wiele czasu i zasobw, tworzc bezprzewodow wersj swojej strony tylko po to, aby przekona si, e zastosowany przez
nich jzyk znacznikw jest przestarzay lub strona nie funkcjonuje w nowym urzdzeniu
39
Rysunek 1.1.
Witryna MSN Game Zone
(http://zone. msn.com/)
obsuguje 7 arkuszy
stylw, prezentuje si
jednak niepoprawnie
w najnowszych
przegldarkach.
Chwali si 14 skryptami,
wrd ktrych
jest bardzo opasy kod
detekcji przegldarek,
ale nawet to jej
nie pomaga.
Jak wida, wykorzystanie
duej iloci kodu
do rozwizania problemu
nie zawsze dziaa
Mylenie wsteczne
Zajrzyj do wntrza jakiejkolwiek wikszej strony, poczynajc od Amazon do Microsoft.com, od Sony po ZDNet. Zbadaj ich zawiy kod, osadzone kontrolki ActiveX
i JavaScript (czsto zawierajcy le dziaajce skrypty rozpoznawania przegldarek),
a take z zaoenia le uyte style CSS o ile w ogle je zastosowano. To cud, e te
strony dziaaj w jakiejkolwiek przegldarce!
Dziaaj, poniewa pierwsze cztery lub pi pokole przegldarek Netscape Navigator
oraz Internet Explorer toleruje jedynie specyficzny dla siebie kod. Taka sytuacja wrcz
zachcaa do niechlujnego kodowania i tworzenia skryptw zalenych od producenta
oprogramowania, aby zwyciy w rynkowej wojnie przegldarek.
40
Czsto niezgodne ze standardami witryny dziaaj, poniewa ich waciciele zainwestowali w drogie narzdzia do publikacji, ktre niweluj rnice midzy przegldarkami
przez generowanie wielu wersji kodu dostosowanego do danej przegldarki lub platformy (patrz Problem wersji). Taka praktyka wystawia na prb cierpliwo uytkownika korzystajcego z modemowego dostpu do sieci przez zapychanie cza rozwidlonym kodem, zagniedonymi tabelami, generowanymi w locie obrazkami, a take
przestarzaymi znacznikami i atrybutami.
Co to jest rozwidlanie kodu?
Kod stanowi podstaw kadego oprogramowania, systemu operacyjnego, generalnie mwic
wszystkiego, co ma jakikolwiek zwizek z technik cyfrow. Kiedy nad projektem pracuje
wicej ni jedna grupa programistw, kod moe rozwidli si na kilka niezgodnych ze sob
wersji, szczeglnie jeli kada grupa prbuje rozwiza inny problem lub przychyli si do
ustale, o ktrych inni nie syszeli. Taki brak konsekwencji oraz sprawowania centralnej
wadzy nad kodem jest rzecz z.
W tej ksice termin rozwidlanie kodu oznacza praktyk polegajc na tworzeniu kilku
rnych wersji kodu na potrzeby przegldarek, ktre nie obsuguj standardw ECMAScript
i DOM (patrz Problem wersji).
Kilka wersji kodu (ktry trzeba przesa kademu uytkownikowi) obcia cze waciciela witryny, podnoszc drastycznie koszty utrzymania serwisu. Im wiksza strona
41
i wikszy ruch na niej, tym wicej pienidzy trzeba wyda na utrzymanie serwerw
wykonujcych zadania, ktrych mona unikn.
Liczby nie kami. Jeeli strona zredukuje swj kod o 35%, zredukuje rwnie o tyle
samo koszty utrzymania cza. Firma wydajca 10 000 z rocznie mogaby zaoszczdzi
3500 z. Przy wydatkach rzdu 64 000 z oszczdnoci wynosz 22 400 z.
Strona domowa Yahoo (rysunek 1.3) jest adowana miliony razy dziennie. Kady bajt
zmarnowany na przestarzay kod przemnoony przez astronomiczn liczb odson daje
w wyniku gigabajty danych przesyanych bez potrzeby. Mona sobie tylko wyobrazi
koszty ponoszone z tytuu takiego marnotrawstwa. Gdyby Yahoo zastpio jedynie niestosowane ju znaczniki (rysunek 1.4) przez wydajne style CSS, koszt adowania
kadej strony zmalaby wielokrotnie, a zyski firmy w konsekwencji wzrosyby. Dlaczego
zatem Yahoo nie wykonao takiego kroku?
Rysunek 1.3.
Strona domowa Yahoo
(http://www.
yahoo.com/)
Tylko jedna odpowied wydaje si prawdziwa firma pragnie, aby strona wygldaa
dokadnie tak samo w starych przegldarkach nieobsugujcych CSS, jak i w nowych
zachowujcych zgodno z tym standardem. Ironia polega na tym, e nikt poza zarzdem
Yahoo nie przejmuje si jej wygldem. Wiadomo bowiem, e olbrzymiego sukcesu
witryna nie zawdzicza wcale szacie graficznej (ktrej nigdy nie posiadaa), lecz oferowanym usugom.
Przykad tej, skdind interesujcej, firmy (marnujcej swoje cza na dostarczanie
wygldu i zachowania1, ktrego nikt tak naprawd nie podziwia) mwi wszystko o zakorzenionym w umysach projektantw podziwie dla zgodnoci wstecz i jej zwizku
z uytecznoci witryn oraz wasnymi zyskami.
1
Wszystkich interaktywnych cech witryny, jakie mona stworzy przy uyciu HTML-a i JavaScriptu
przyp. tum.
42
Rysunek 1.4.
Yahoo od rodka.
Zobacz rdo,
a przekonasz si, e kod
sucy do stworzenia
tej prosto wygldajcej
strony jest niewyobraalnie
skomplikowany
Redukcja cza
Scenariusz: Samodzielnie utrzymywana witryna maego przedsibiorstwa lub witryna
naleca do sektora publicznego obsuguje cigy strumie odwiedzajcych kilkaset
odson w danej chwili. Po zredukowaniu rozmiaru stron o poow poprzez konwersj znacznikw prezentacji strony do zwizego, czystego kodu XHTML firma
oszczdza 1500 z miesicznie.
Jak to dziaa: Aby obsuy klientw przed konwersj, witryna potrzebowaa dwch
linii T1 (1,544 Mb/s). Koszt dzierawy kadej z nich wynosi 1500 z na miesic. Po
ogoleniu plikw i zredukowaniu ich rozmiaru o 50%, firma dochodzi do wniosku,
e jest w stanie obsuy t sam liczb klientw przez jedno cze T1, tym samym
redukujc swoje koszty operacyjne o 1500 z miesicznie. Oprcz kosztw dzierawy
cza zmniejsz si rwnie nakady na sprzt komputerowy. Im prostszy jest kod
43
strony, tym szybciej jest ona dostarczana do uytkownika. Im szybciej jest dostarczana,
tym mniej obcia serwer trzeba kupi, serwisowa i modyfikowa mniej serwerw.
Jest to szczeglnie istotne w przypadku serwerw, ktre musz generowa dynamiczn,
sterowan bazami danych zawarto czyli zawarto, jak posuguj si niemal wszystkie wspczesne witryny komercyjne.
Licznik megabajtw
Scenariusz: W miar rozwoju komercyjnie hostowanej witryny jej waciciele dochodz
do wniosku, e kadego miesica pac nieuzasadnion kar za transfer plikw, wynoszc dziesitki, a nawet setki zotych. Obcicie rozmiaru plikw o poow sprowadza
wysoko paconych rachunkw do przyzwoitego poziomu.
Jak to dziaa: Wiele firm oferujcych usugi hostingowe przydziela swoim uytkownikom wolny od opat miesiczny limit transferu plikw na przykad 3 GB. Poniej
tej wartoci pacimy zwyk stawk miesiczn.Za przekroczenie limitu pobierane s
dodatkowe opaty, czasami bardzo due.
W jednym niesawnym przypadku firma hostingowa Global Internet Solutions znokautowaa niezalenego projektanta Ala Sacui szesnastoma tysicami dolarw dodatkowych opat, kiedy jego niekomercyjna strona, Nosepilot.com, przekroczya dozwolony
miesiczny limit transferu plikw. Jest to przypadek ekstremalny, a klientowi ostatecznie udao si unikn zapacenia kary dziki udowodnieniu firmie zmiany warunkw
oferowanej usugi bez powiadomienia klientw (http://thewebfairy.com/gisol/). Kogo
jednak sta na ryzyko pacenia niewyobraalnych rachunkw lub rozprawiania si
z nieuczciw firm w sdzie?
Oczywicie nie kada firma hostingowa stosuje podobne praktyki. Pair.com na przykad obcia klienta opat 1,5 centa za kady megabajt ponad limit. Strona o maym
ruchu sieciowym hostowana przez Pair.com moe utrzyma si rocznie za kwot 200
dolarw. Wiksze witryny, z wikszym ruchem na stronach oszczdzaj najwicej przez
redukowanie rozmiaru plikw. Niezalenie od tego, czy strona jest maa czy dua,
odwiedzana przez miliony czy te przez garstk ludzi, im mniejszy rozmiar plikw, tym
mniejszy ruch w sieci i mniejsze prawdopodobiestwo przekroczenia limitw. A ju
zupenie na marginesie, najlepiej wybra firm, ktra stosuje nielimitowane transfery
plikw, zamiast kara swoich klientw za tworzenie popularnych stron.
Zgodno wstecz
Co programici uwaaj za zgodno wstecz? Zapytani odpowiedz: zapewnienie
obsugi wszystkim uytkownikom. I jak tu spiera si z takim argumentem?
W praktyce jednak zgodno wstecz oznacza stosowanie niestandardowych, zastrzeonych (lub niepraktykowanych) znacznikw oraz kodu, aby kady uytkownik odwiedzajcy witryn mg dowiadczy tego samego, niezalenie od tego, czy uywa IE2 czy
Netscape 7. Zasada zgodnoci wstecz traktowana jako wity Graal programowania brzmi niele w teorii. Jednak jej koszt jest zbyt wysoki, a ona sama od zawsze
opiera si na faszywym zaoeniu.
44
Nie istnieje prawdziwa zgodno wstecz. Zawsze istnieje punkt odcicia. Na przykad
ani Mosaic (pierwsza przegldarka graficzna), ani Netscape 1.0 nie obsuguj ukadw
opartych na tabelach HTML-owych. Zatem uytkownicy tych archaicznych przegldarek nie mog zobaczy tego samego, co uytkownicy odrobin nowszych narzdzi
typu Netscape 1.1 lub MSIE 2.
Programici i klienci goszcy ide zgodnoci zmuszeni s do okrelenia bazowej
przegldarki, na przykad Netscape 3, i przyjcia, e jest to najwczeniejsza przegldarka,
ktra obsugiwa bdzie ich stron (uytkownicy Netscapea 2 nie maj szczcia).
Aby wypeni zobowizanie obsugi przegldarki bazowej, wprowadzaj do kodu szereg
sztuczek, niestandardowych trikw i okrnych rozwiza, ktre zwikszaj ciar
kadej strony.
Jednoczenie pisz kilka skryptw, ktre rozpoznaj typ przegldarki i zasilaj j odpowiednim kodem. To dodatkowo zwiksza rozmiar stron, nakada obcienia na serwery
i zapewnia nieustajcy proces starzenia si witryny a do wyczerpania pienidzy lub
wypadnicia z brany.
45
Blokowanie uytkownikw
nie wpywa dobrze na interesy
Podczas gdy niektre firmy dokonuj zamachu na swoje dochody, prbujc zapewni
wsparcie nawet dla najstarszej przegldarki, inne decyduj si na obsug wycznie
jednej z nich. Ze wzgldu na bdne zaoenia ronie liczba stron projektowanych wycznie do wsppracy z Internet Explorerem (czasem wycznie na platformie Windows),
blokujc tym samym 15 25% potencjalnych uytkownikw i klientw (rysunki 1.5,
1.6, 1.7, 1.8, 1.9).
Rysunek 1.5.
Strona domowa KPMG
(http://www.kpmg.com/)
przegldana
w Navigatorze.
Zupena rozsypka
ukadu jest efektem
zastosowania kodu
dziaajcego
wycznie w IE
Rysunek 1.6.
Serwis KPMG
jest rwnie
bezuyteczny
w Netscapeie 7.
Najwyraniej firma
nie przejmuje si
t grup klientw
46
Rysunek 1.7.
Ta sam strona,
tym razem w Internet
Explorerze 5
dla komputerw
Macintosh.
Widok nie jest
zachcajcy
(witryna dziaa
poprawnie przez
jaki czas, a nastpnie
zupenie nieoczekiwanie
rozsypuje si)
Rysunek 1.8.
KPMG widziany
przez IE6/Windows.
Tutaj serwis
w kocu dziaa
Nie bdziemy udawa, e rozumiemy podejcie biznesowe firmy, ktra z zaoenia mwi
NIE jednej czwartej swoich potencjalnych klientw. Tak dua liczba klientw stracona
przez krtkowzroczne podejcie nie powinna by akceptowana przez adnego racjonalnego przedsibiorc lub instytucj publiczn z mandatem suenia spoeczestwu. Wedug
statystyk sporzdzanych przez NUA Internet Surveys (http://www.nua.ie/surveys/) ponad
650 milionw ludzi korzysta z internetu (wrzesie 2002). Sam policz, czy to si opaca.
Powiedz, e nie przejmujesz si utrat 25% uytkownikw, ktrzy pragn odwiedzi
twoj stron. Podejcie tylko IE jest pozbawione sensu rwnie dlatego, e nie istnieje
47
Rysunek 1.9.
Serwis poniekd dziaa
rwnie w Operze 7
dla Windows, kiedy ta
identyfikuje si jako IE
(kiedy Opera
identyfikuje si
jako ona sama, serwis
przestaje dziaa)
48
Droga do Pacanowa
Na pocztku 1997 roku powszechn praktyk byo pisanie w jzyku JavaScript dla
przegldarek Netscape i JScript (jzyku podobnym do JavaScriptu) dla przegldarek
Microsoft. Rwnie powszechne byo stosowanie JavaScriptu (obsugiwanego wycznie
przez Netscapea) i ActiveX (dostpnego wycznie dla IE/Windows) do wysyania
przegldarkom potrzebnego im kodu. Tak postpowalimy z przegldarkami w wersji 3.0.
Praktyki takie nie przysugiway mniej znanym programom, takim jak Opera czy choby
Internet Explorer dla komputerw Macintosh, ale zadawalay wikszo uytkownikw sieci i dziki temu szybko urosy do rangi normy branowej. Jeeli chcielimy
tworzy aktywne strony, ktre oferoway co wicej ponad adny wygld, nie mielimy
innego wyboru, jak tylko przestrzega ustalonych procedur.
Pod koniec roku 1997 wprowadzono na rynek przegldarki Netscape i Microsoft w wersji
4.0, zapewniajce potne moliwoci dynamicznego jzyka HTML (DHTML), ktre,
jak atwo mona zgadn, byy zupenie ze sob niezgodne. Ponadto byy rwnie
niezgodne ze swoimi poprzednimi wersjami (to, co dziaao w Netscapeie 4, nie dziaao
w Netscapeie 3), nie wspominajc ju o zupenym braku zgodnoci z mao znanymi
przegldarkami, ktre pokornie obsugiway podstawowe standardy jak HTML zamiast
tworzenia swoich wasnych jzykw i atrybutw.
Czy taka sytuacja bya normalna? Netscape i Microsoft sdziy, e tak, podobnie jak
wielu programistw i projektantw. Pozostali, niezgadzajcy si z t sytuacj, nie mieli
alternatywy, musieli zagry zby i tworzy kilka wersji witryny, aby zapewni jej
profesjonalizm.
49
50
Nonsensowny znacznik jest le zapisanym znacznikiem . Dziki zastosowaniu bardzo wydajnego narzdzia do publikowania witryn ta literwka przewija
si tysice razy przez kod strony. Jeli pominiemy sam bd, przedstawiony fragment
kodu powinien wyglda znajomo. By moe jest on wrcz odzwierciedleniem kodu,
ktry stosujesz na swoich stronach. W kontekcie tej konkretnej witryny cao mona
byo zredukowa do nastpujcej postaci:
#
!"#
Poczony z odpowiedni regu w arkuszu stylw ten prociutki, strukturalny fragment kodu bdzie robi dokadnie to samo, co nieefektywny, niestandardowy i bdny
kod przedstawiony wyej. Mniejsza ilo kodu wpynie pozytywnie na wydajno cza
serwera i klienta, a take uatwi przejcie do bardziej elastycznej formy strony wspomaganej przez znaczniki XML. Ta sama komercyjna strona zawiera rwnie bdny
skrypt w jzyku JavaScript:
$%$ &
'
(""')"
*)')+,
"
51
Lek
Po dugiej batalii projektantw i programistw z producentami najpopularniejszych
na rynku przegldarek moemy w kocu skorzysta z technik, ktre gwarantuj jednakowy wygld i zachowanie stron we wszystkich przegldarkach.
Stworzone przez czonkw konsorcjum W3C i inne organizacje zajmujce si ustanawianiem standardw oraz obsugiwane przez wspczesne przegldarki firm Netscape,
Microsoft, Opera i innych, technologie takie jak CSS, XHTML, ECMAScript (standardowa wersja JavaScript) i W3C DOM pozwalaj projektantom:
bardziej precyzyjne kontrolowa ukad, pooenie i typografi w przegldarkach
koszty pracy,
obsugiwa wiele przegldarek bez koniecznoci tworzenia wielu wersji
52
Zanim bdziemy mogli nauczy si, w jaki sposb standardy umoliwiaj realizacj
wymienionych wyej obietnic, musimy przyjrze si metodom starej szkoy, aby
dowiedzie si, w jaki sposb generuj one nieustajcy cykl starzenia si witryn. Wyjani
to rozdzia 2. Projektowanie i budowanie z uyciem standardw.