You are on page 1of 7

Ajax dla twrcw

aplikacji internetowych
Autor: Kris Hadlock
Tumaczenie: Adam Jarczyk
ISBN: 978-83-246-0959-8
Tytu oryginau: Ajax for Web Application Developers
Format: B5, stron: 256

Zaprojektuj i stwrz nowatorskie aplikacje WWW


Poznaj technologi Ajax
Wykorzystaj wzorce projektowe
Zoptymalizuj komunikacj z baz danych
Chcesz, aby tworzone przez Ciebie aplikacje WWW stay si wygodniejsze w uytkowaniu
i przypominay programy, z ktrych korzystasz codziennie? Wykorzystaj moliwoci,
jakie oferuje technologia Ajax poczenie jzyka JavaScript i potgi znacznikw XML.
Dziki Ajaksowi stworzysz aplikacje internetowe pozbawione podstawowej wady, ktra
czsto bya przeszkod w ich uytkowaniu koniecznoci przeadowywania stron. Ajax
pozwala na pobieranie danych w tle, lecz nie jest to jedyna jego zaleta za jego pomoc
mona rwnie weryfikowa poprawno danych wprowadzanych przez uytkownikw,
tworzy elementy graficzne generowane w czasie rzeczywistym i wprowadza do
aplikacji wiele uytecznych elementw.
Ajax dla twrcw aplikacji internetowych to podrcznik, dziki ktremu poznasz
praktyczne aspekty tej technologii i zasady wykorzystywania jej w projektach.
Czytajc t ksik, dowiesz si, jak dziaaj witryny WWW zrealizowane za pomoc
Ajaksa. Nauczysz si wykorzystywa jzyk JavaScript do tworzenia mechanizmw Ajax
oraz komponentw, ktre bdziesz mg stosowa w rnych aplikacjach internetowych.
Przeczytasz take o komunikacji z bazami danych, zabezpieczaniu aplikacji i obsudze
bdw.

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

Zasada dziaania aplikacji Ajax


Formatowanie danych za pomoc XHTML i CSS
Tworzenie mechanizmw Ajax za pomoc jzyka JavaScript
Wykrywanie i usuwanie bdw z kodu JavaScript
Budowanie wasnych komponentw w technologii Ajax
Stosowanie wzorcw projektowych w aplikacjach Ajax
Poczenia z baz danych z poziomu PHP, ASP.NET i ColdFusion
Zabezpieczanie aplikacji internetowych
Wykorzystaj technologi Ajax i stwrz aplikacje, ktre bd wzorem dla innych

Spis treci
O autorze ...................................................................................... 9
Przedmowa ................................................................................. 11

Podstawy .................................................................. 13

Wprowadzenie do technologii Ajax ........................................... 15


Obiektowy model dokumentu XML
Zestawienie korzyci

danie ....................................................................................... 19
XMLHttpRequest od podszewki
Tworzenie obiektu
Asynchroniczny transfer danych
Stan gotowoci
Kody stanu i nagwki HTTP

19
23
24
26
27

Odpowied .................................................................................. 31
XML
JSON

16
16

31
39

Wizualizacja odpowiedzi za pomoc XHTML-a i CSS .............. 45


XHTML
CSS

45
48

II

Tworzenie i uywanie silnika w jzyku JavaScript .. 51

Obiektowy JavaScript ................................................................. 53


Sposoby podejcia obiektowego
Konstruktory obiektw
Prototypy

54
56
60

Tworzenie silnika ....................................................................... 67


Tworzenie wasnego interfejsu Ajax
Obiekt AjaxUpdater

67
71

Ajax dla twrcw aplikacji internetowych

Korzystanie z silnika .................................................................. 73


Pocztek pracy
Realizacja dania
Metody i waciwoci silnika

Usuwanie bdw ....................................................................... 77


Zdarzenie JavaScriptu onerror
responseText
IE Developer Toolbar
Safari Enhancer
FireBug

73
74
75

77
79
79
82
84

Rozbudowa silnika ..................................................................... 93


Obiekt Utilities
Obsuga kodw statusu za pomoc obiektu HTTP

93
99

III

Tworzenie komponentw
nadajcych si do ponownego uycia .................... 107

10

Akordeon .................................................................................. 109


Pocztki
Tworzenie obiektu Accordion
Funkcjonalno paneli i wywietlanie danych

11

Widok drzewa .......................................................................... 119


Struktura danych
Obsuga odpowiedzi
Wizualizacja w interfejsie graficznym

12

119
121
122

Weryfikacja danych po stronie klienta .................................... 129


Wstp
Tworzenie obiektu weryfikatora
Strona serwera

13

109
112
115

129
131
136

Siatka danych ........................................................................... 143


Wstp
Tworzenie obiektu siatki danych
Wywietlanie danych

143
144
148

IV

Wzorce Ajax ........................................................... 155

14

Wzorzec Singleton .................................................................... 157


Wzorzec Singleton w skrcie
Tworzenie obiektw z uyciem wzorca Singleton
Uywanie obiektu Singleton

15

157
158
161

Model View Controller ............................................................. 163


Podstawy wzorca MVC
Tworzenie wzorca
Korzystanie z wzorca MVC

163
165
166

Spis treci

16

Wzorzec Observer ..................................................................... 169


Wprowadzenie
Obiekt obsugujcy bdy
Korzystanie z obiektu obsugujcego bdy

17

177
180

Wzorce interakcji ..................................................................... 183


Tworzenie historii za pomoc cookies
Przeciganie i upuszczanie

19

169
170
176

Wzorzec Data Reflection .......................................................... 177


Wprowadzenie
Tworzenie wzorca

18

183
189

Wzorce uytecznoci ................................................................ 195


Obsuga zwracanych informacji, komunikatw o bdach i ostrzee

196

Interakcja po stronie serwera ................................. 203

20

Wprowadzenie do interakcji Ajaksa z bazami danych ............ 205


czenie si z PHP

21

Interakcja z baz danych od strony serwera ........................... 221


czenie si z ASP.NET
czenie si z ColdFusion

22

206

221
225

Zaawansowana interakcja z baz danych ................................ 229


Aktualizacje masowe
XML i JSON po stronie serwera

229
232

VI

Ostateczny szlif ....................................................... 235

23

Zabezpieczanie aplikacji .......................................................... 237


Luki w bezpieczestwie
Zabezpieczanie da Ajaksa hasami
Weryfikacja hase po stronie serwera

24

237
239
241

Zalecane praktyki ..................................................................... 243


Korzystanie z silnika
Wzorce projektowe
Korzystanie z komponentw
Odpowiedzi statyczne i dynamiczne
Obsuga bdw i komunikatw
Historia aplikacji
Bezpieczestwo

243
244
244
244
245
245
246

Skorowidz ................................................................................. 247

1
Wprowadzenie
do technologii Ajax
D

ZIKUJ ZA ZAKUP EGZEMPLARZA niniejszej ksiki. Moim celem jest nie tylko przedstawienie w niej technologii definiujcych Ajax i tego, jak wsplnie umoliwiaj zaawansowan interakcj po stronie klienta, lecz rwnie zaprezentowanie praktycznych przykadw, ktre mona bdzie wykorzysta ponownie w innych aplikacjach WWW opartych
na Ajaksie. Przykady te bd w peni zorientowane obiektowo, aby zapewni skalowalno i elastyczno niezbdne w rozbudowanych aplikacjach korporacyjnych. Ksika
skada si z rozdziaw, ktre przeprowadz Czytelnika przez indywidualne przykady pokazujce midzy innymi tworzenie uniwersalnego silnika Ajax, komponentw obsugujcych Ajax oraz mj ulubiony prezentujcy poczenie technologii Ajax z jzykami wykonywanymi po stronie serwera. Ajax do wymiany danych wymaga technologii
pomocniczych, jak na przykad XML (ang. Extensible Markup Language) i JSON (ang.
JavaScript Object Notation), a do wizualizowania i wywietlania danych takich technologii jak JavaScript i CSS (ang. Cascading Style Sheets kaskadowe arkusze stylw),
ktre omwimy przed zagbieniem si w wiat bardziej zoonych rozwiza. Dysponujc wiedz o integracji frontonu i zaplecza, pokaemy, jak wszystkie przykady mona
poczy w funkcjonaln aplikacj; w kocu Ajax wymaga znajomoci obu stron z uwagi na to, e s tak mocno z sob zintegrowane. Omwimy te typowe techniki programowania, ktre mona zastosowa w Ajaksie, by przyspieszy i usystematyzowa tworzenie
aplikacji. Nastpnie przedstawimy zalecane metody zabezpieczania aplikacji Ajax i tworzenia intuicyjnych mechanizmw interakcji z uytkownikiem, obsugi komunikatw i innych aspektw wywietlania danych po stronie klienta.
Nazwa Ajax to skrt od Asynchronous JavaScript and XML. Jednym z najwaniejszych
skadnikw tej technologii jest obiekt XMLHttpRequest nalecy do obiektowego modelu
dokumentu (DOM) XML. Obiektowy model dokumentu XML jest niezmiernie istotn
czci Ajaksa, wic na pocztek przyjrzymy si mu, aby pozna jego miejsce wrd zagadnie, ktre bdziemy omawia.

16

Rozdzia 1. Wprowadzenie do technologii Ajax

Obiektowy model dokumentu XML


Obiektowy model dokumentu (DOM Document Object Model) XML definiuje standardow metod dostpu i manipulowania dokumentami XML. Pozwala na peny dostp do
dokumentw XML i XHTML z poziomu jzyka JavaScript przez umoliwienie dostpu do
poszczeglnych elementw definiujcych struktur tych dokumentw. Jest to moliwe
dziki zestawowi wbudowanych obiektw JavaScriptu, ktrych zadaniem jest manipulacja DOM. Z modelu DOM bdziemy korzysta w caej niniejszej ksice, poniewa jest
wymagany do parsowania odpowiedzi, ktre otrzymujemy z serwera po utworzeniu dania XMLHttpRequest (XHR). Jak ju wspomniano, XHR jest rdzeniem modelu Ajax
i bez niego cay model nie mgby istnie. Ten wanie element ukadanki narobi ostatnio
szumu wok caej technologii, poniewa pozwala na wysyanie da HTTP do serwera
bez odwieania okna przegldarki.
Wprawdzie technologia Ajax zyskaa ostatnio spory rozgos, lecz istnieje ju od duszego czasu. Microsoft udostpni po raz pierwszy obiekt XHR w przegldarce systemu
Windows IE 5 jako obiekt ActiveX dostpny przez jzyki JavaScript i VBScript. Obecnie
XHR jest obsugiwany przez przegldarki Mozilla, Firefox, Safari, Opera i Netscape za
pomoc wbudowanego obiektu JavaScriptu. Obiekt ten jest rwnie obsugiwany przez
Internet Explorer 7. Wprawdzie odpowiednie technologie s dostpne i wykorzystywane
przez programistw ju od jakiego czasu, lecz dopiero ostatnio zdobyy wiksz popularno. Gwn tego przyczyn jest obsugiwanie technologii przez przegldarki, poniewa
starsze wersje przegldarek czsto nie miay wbudowanej obsugi DHTML-a, XHTML-a,
CSS i XMLHttpRequest. Powszechne przyjcie si tych technologii wysuno Ajax na plan
pierwszy i ponownie stworzyo ciekawe moliwoci dla autorw stron WWW. Pojawiaj
si niewielkie, niezalene firmy, ktrych aplikacje WWW rywalizuj z lokalnymi aplikacjami komputerowymi, oferujc uytkownikom potn funkcjonalno i wygod pracy.

Zestawienie korzyci
Ajax jest potnym zbiorem jzykw, ktre wsplnie pozwalaj tworzy wyjtkowo intuicyjne interfejsy uytkownika i mechanizmy interakcji po stronie klienta. Z tego powodu, niestety, wielu programistw do tego stopnia zasugerowao si szumem medialnym
wok technologii, e po prostu wstawia kod do aplikacji bez uprzedniego oszacowania
korzyci, jakie to moe przynie. Nie kada aplikacja WWW potrzebuje technologii
Ajax, lecz wiele elementw aplikacji mona ulepszy, korzystajc z jej zalet. W niniejszej
ksice omwimy wzorce uytecznoci, ktre obsu zwracanie informacji uytkownikowi i bd sprawdza poprawno formularza jeszcze po stronie klienta przed jego wysaniem, oraz komponenty wykorzystujce Ajax, ktre ulepsz dziaanie fragmentw aplikacji WWW bez popadania w przesad. Ajax jest technologi doskona, gdy zachodzi
potrzeba czenia si z serwerem i ewentualnie interakcji z baz danych bez odwieania
strony w przegldarce. Taka funkcjonalno jest najwiksz si technologii Ajax, poniewa pozwala na interakcj z serwerem, odbieranie kodw stanu HTTP, zapisywanie
informacji w bazie danych i zdecydowanie, jakie dane przedstawi uytkownikowi bez

Zestawienie korzyci

17

odwieania strony. Taki mechanizm danie-odpowied moe funkcjonowa nieustannie, tak jak w lokalnej aplikacji, lecz dziki technologii Ajax mona udostpnia aplikacje
WWW w Internecie kademu uytkownikowi dysponujcemu czem internetowym, bez
kosztw wysyki duych i niepotrzebnych pude z oprogramowaniem. WWW jest nowym
pulpitem komputerowym i nadchodzi powana rewolucja na rynku oprogramowania,
w ktrej moemy uczestniczy aktywnie jako pionierzy technologii informacji dostarczanej
na danie.
Ajax moe by cennym poczeniem pomidzy interfejsem i oprogramowaniem zaplecza, pozwalajc na korzystanie z potnych i niezawodnych aplikacji zaplecza poprzez
prosty i intuicyjny interfejs zwracajcy uytkownikom informacje na danie. Umoliwia
te wymian danych ze skryptami jzykw wykonywanych po stronie serwera i zapisywanie ich w bazach danych bez przerywania kontaktu uytkownika z aplikacj powodowanego w aplikacjach standardowych przez odwieenie okna przegldarki. Po ukoczeniu
lektury niniejszej ksiki Czytelnik bdzie dysponowa wiedz wystarczajc, by tworzy
w peni funkcjonalne aplikacje Ajax.

You might also like