Ajax_w_akcji_ajaakc.pdf

(935 KB) Pobierz
IDZ DO
PRZYKÿADOW Y ROZDZIAÿ
Ajax w akcji
SPIS TREľCI
Autorzy: Dave Crane, Eric Pascarello, Darren James
ISBN: 83-246-0495-2
TytuĀ oryginaĀ u: Ajax in Action
Format: B5, stron: 712
KATALOG KSIĠİEK
KATALOG ONLINE
ZAMíW DRUKOWANY KATALOG
TWíJ KOSZYK
Praktyczne zastosowania technologii, ktra zrewolucjonizowaĀa aplikacje sieciowe
¤ Podstawy Ajaksa
¤ Metodologie tworzenia aplikacji internetowych
¤ Optymalizacja i zabezpieczanie aplikacji
Ajax to technologia tworzenia aplikacji i witryn WWW, ktra zyskuje coraz wiķksze
uznanie wľrd programistw. Dziķki poĀĴczeniu jķzykw JavaScript i XML
z asynchronicznĴ komunikacjĴ miķdzy przeglĴdarkĴ i serwerem twrcom tej technologii
udaĀo siķ wyeliminowaě podstawowĴ wadķ aplikacji bazujĴcych na przeglĴdarce
internetowej, czyli koniecznoľě oczekiwania na âprzeĀadowanieÒ strony. Ajax sprawia, Ńe
niezbķdne dane sĴ pobierane w tle. Zastosowanie tej technologii powoduje, Ńe aplikacje
sieciowe pod wzglķdem obsĀugi coraz bardziej przypominajĴ tradycyjne programy.
Efekty dziaĀania Ajaksa moŃna zaobserwowaě na coraz wiķkszej iloľci witryn WWW.
âAjax w akcjiÒ to praktyczny przewodnik po zagadnieniach zwiĴzanych z projektowaniem
witryn i aplikacji WWW w tej technologii. CzytajĴc go, poznasz genezķ Ajaksa
i podstawy korzystania z niego. Nauczysz siķ stosowaě wzorce projektowe, model MVC
oraz frameworki i biblioteki wspomagajĴce tworzenie witryn WWW. Przeczytasz
o profesjonalnych technikach budowania aplikacji sieciowych i zastosujesz je
w praktyce, piszĴc wĀasne systemy. Znajdziesz tu rwnieŃ informacje o optymalizowaniu
wydajnoľci aplikacji oraz tworzeniu mechanizmw zabezpieczeĺ. Dziķki przykĀadom
zgromadzonym w kolejnych rozdziaĀach ksiĴŃki, takim jak dynamiczna lista rozwijana,
mechanizm podpowiedzi, rozbudowany portal sieciowy oraz interfejsy uŃytkownika,
poznasz praktyczne aspekty stosowania Ajaksa w projektach.
¤ Podstawowe zastosowania Ajaksa
¤ Dostosowywanie istniejĴcych aplikacji do Ajaksa
¤ Wzorzec MVC w aplikacjach
¤ Biblioteki i frameworki wspomagajĴce pracķ nad aplikacjami
¤ Oddzielanie logiki od widoku
¤ Wymiana danych pomiķdzy przeglĴdarkĴ i serwerem
¤ Zabezpieczanie aplikacji
¤ Optymalizacja wydajnoľci
Twrz aplikacje, ktre bķdĴ nie tylko funkcjonalne, ale rwnieŃ wygodne w obsĀudze
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMíW INFORMACJE
ONOWOľCIACH
ZAMíW CENNIK
CZYTELNIA
FRAGMENTY KSIĠİEK ONLINE
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
837630327.015.png 837630327.016.png 837630327.017.png 837630327.018.png 837630327.001.png 837630327.002.png 837630327.003.png 837630327.004.png 837630327.005.png 837630327.006.png 837630327.007.png 837630327.008.png 837630327.009.png 837630327.010.png 837630327.011.png 837630327.012.png 837630327.013.png 837630327.014.png
 
Spis treści
Przedmowa
13
Podziękowania
15
O książce
19
Część I Reorganizacja pojęcia aplikacji internetowej
27
1. Nowe projektowanie dla serwisów internetowych 29
1.1. Dlaczego mówi się o wzbogaconych klientach ajaksowych? ............................................ 30
1.1.1. Porównanie odczuć użytkowników .......................................................................... 31
1.1.2. Opóźnienia sieci ........................................................................................................ 35
1.1.3. Interakcje asynchroniczne ........................................................................................ 37
1.1.4. Długotrwałe i chwilowe wzorce użytkowania ......................................................... 40
1.1.5. „Oduczanie się” internetu ......................................................................................... 41
1.2. Cztery zasady definiujące Ajaksa ....................................................................................... 42
1.2.1. Przeglądarka przechowuje aplikację, nie zawartość ................................................ 42
1.2.2. Serwer dostarcza dane, nie zawartość ...................................................................... 44
1.2.3. Interakcja użytkownika z aplikacją może być płynna i ciągła ................................. 46
1.2.4. To jest prawdziwe pisanie programów i wymaga dyscypliny ................................. 47
1.3. Wzbogacone klienty ajaksowe w rzeczywistym świecie ................................................... 48
1.3.1. Badanie terenu .......................................................................................................... 48
1.3.2. Google Maps .............................................................................................................. 49
1.4. Alternatywy dla Ajaksa ........................................................................................................ 52
1.4.1. Rozwiązania oparte na Macromedia Flash .............................................................. 52
1.4.2. Java Web Start i związane z nią technologie ........................................................... 53
6
Spis treści
1.5. Podsumowanie ...................................................................................................................... 53
1.6. Zasoby .................................................................................................................................... 54
2. Pierwsze kroki z Ajaksem 55
2.1. Kluczowe elementy Ajaksa .................................................................................................. 56
2.2. Sprawianie dobrego wrażenia na użytkownikach za pomocą JavaScriptu .................... 58
2.3. Definiowanie wyglądu i zachowania przy użyciu CSS ..................................................... 59
2.3.1. Selektory CSS ............................................................................................................ 60
2.3.2. Właściwości stylów CSS ........................................................................................... 62
2.3.3. Prosty przykład CSS .................................................................................................. 63
2.4. Organizowanie widoku za pomocą DOM .......................................................................... 68
2.4.1. Praca z DOM przy użyciu JavaScriptu .................................................................... 70
2.4.2. Znajdowanie węzła DOM ......................................................................................... 72
2.4.3. Tworzenie węzła DOM ............................................................................................. 73
2.4.4. Dodawanie stylów do dokumentu ............................................................................ 74
2.4.5. Droga na skróty: użycie właściwości innerHTML .................................................. 75
2.5. Asynchroniczne ładowanie danych przy użyciu technologii XML ................................. 76
2.5.1. <iframe> ................................................................................................................... 77
2.5.2. Obiekty XmlDocument i XMLHttpRequest ........................................................... 79
2.5.3. Wysyłanie żądań do serwera ..................................................................................... 81
2.5.4. Używanie funkcji zwrotnych do monitorowania żądania ........................................ 83
2.5.5. Pełny cykl życia ......................................................................................................... 84
2.6. Czym wyróżnia się Ajax? ...................................................................................................... 87
2.7. Podsumowanie ...................................................................................................................... 89
2.8. Zasoby .................................................................................................................................... 90
3. Porządkowanie aplikacji wykorzystujących technologię Ajax 91
3.1. Porządkowanie chaosu ......................................................................................................... 93
3.1.1. Wzorce: tworzenie wspólnego słownictwa .............................................................. 93
3.1.2. Refaktoryzacja a Ajax ................................................................................................. 94
3.1.3. Zachowanie właściwych proporcji ........................................................................... 95
3.1.4. Refaktoryzacja w działaniu ....................................................................................... 96
3.2. Niewielkie przykłady refaktoryzacji ................................................................................... 99
3.2.1. Niezgodności przeglądarek: wzorce Fa ç ade oraz Adapter ..................................... 99
3.2.2. Zarządzanie procedurami obsługi zdarzeń: wzorzec Observer ............................ 103
3.2.3. Wielokrotne stosowanie funkcji obsługujących
działania użytkownika: wzorzec Command ........................................................... 107
3.2.4. Przechowywanie tylko jednej referencji do zasobu: wzorzec Singleton .............. 110
3.3. Model-View-Controller ...................................................................................................... 114
3.4. Wzorzec MVC stosowany na serwerze ............................................................................. 117
3.4.1. Serwerowa część aplikacji tworzona bez użycia wzorców .................................... 117
3.4.2. Refaktoryzacja modelu dziedziny ........................................................................... 121
3.4.3. Separacja zawartości od prezentacji ....................................................................... 124
3.5. Biblioteki i frameworki ...................................................................................................... 128
3.5.1. Biblioteki zapewniające poprawne działanie skryptów w różnych przeglądarkach ......128
3.5.2. Kontrolki oraz bazujące na nich szkielety .............................................................. 133
3.5.3. Frameworki aplikacji ............................................................................................... 136
3.6. Podsumowanie .................................................................................................................... 140
3.7. Zasoby .................................................................................................................................. 142
Spis treści
7
Część II Podstawowe techniki
143
4. Strona WWW jako aplikacja 145
4.1. Inny rodzaj wzorca MVC ................................................................................................... 146
4.1.1. Powielanie wzorca w różnych skalach ................................................................... 146
4.1.2. Stosowanie wzorca MVC w przeglądarce .............................................................. 147
4.2. Widoki w aplikacjach Ajax ................................................................................................ 150
4.2.1. Oddzielanie logiki od widoku ................................................................................. 150
4.2.2. Oddzielanie widoku od logiki ................................................................................. 156
4.3. Kontroler w aplikacjach wykorzystujących technologię Ajax ........................................ 160
4.3.1. Klasyczne procedury obsługi zdarzeń .................................................................... 160
4.3.2. Model obsługi zdarzeń W3C .................................................................................. 164
4.3.3. Implementacja elastycznego modelu obsługi zdarzeń w języku JavaScript ........ 165
4.4. Model w aplikacjach wykorzystujących technologię Ajax ............................................. 170
4.4.1. Zastosowanie JavaScriptu do stworzenia modelu dziedziny biznesowej ............. 171
4.4.2. Wymiana danych z serwerem ................................................................................. 173
4.5. Generacja widoku na podstawie modelu ......................................................................... 175
4.5.1. Refleksja obiektów JavaScript ................................................................................ 175
4.5.2. Obsługa tablic i obiektów ....................................................................................... 179
4.5.3. Dodawanie kontrolera ............................................................................................. 182
4.6. Podsumowanie .................................................................................................................... 185
4.7. Zasoby .................................................................................................................................. 186
5. Rola serwera 187
5.1. Współpraca z aplikacjami działającymi na serwerze ..................................................... 188
5.2. Tworzenie aplikacji działającej po stronie serwera ........................................................ 189
5.2.1. Najczęściej stosowane języki programowania ....................................................... 189
5.2.2. Architektury n-warstwowe ...................................................................................... 190
5.2.3. Utrzymanie modeli dziedziny po stronie klienta i serwera ................................ 191
5.3. Postać ogólna: najczęściej stosowane projekty aplikacji wykonywanych na serwerze ........ 193
5.3.1. Naiwne tworzenie kodu działającego
na serwerze bez stosowania żadnego frameworka ................................................. 193
5.3.2. Korzystanie z frameworków Model2 ...................................................................... 195
5.3.3. Frameworki bazujące na komponentach ............................................................... 196
5.3.4. Stosowanie architektur bazujących na usługach ................................................... 199
5.4. Informacje szczegółowe: wymiana danych ...................................................................... 204
5.4.1. Interakcje klienckie ................................................................................................. 205
5.4.2. Prezentacja przykładowej aplikacji przeglądarki planet ........................................... 205
5.4.3. Myśl jak strona WWW — interakcje operujące na zawartości ............................ 208
5.4.4. Myśl jak plugin — interakcje operujące na skryptach .......................................... 212
5.4.5. Myśl jak aplikacja — interakcje operujące na danych .......................................... 218
5.5. Przekazywanie danych na serwer ..................................................................................... 223
5.5.1. Stosowanie formularzy HTML ............................................................................... 224
5.5.2. Stosowanie obiektu XMLHttpRequest .................................................................. 226
5.5.3. Efektywna obsługa aktualizacji danych ................................................................. 227
5.6. Podsumowanie .................................................................................................................... 236
5.7. Zasoby .................................................................................................................................. 237
 
8
Spis treści
Część III Profesjonalny Ajax
239
6. Wrażenia użytkownika 241
6.1. Róbmy to dobrze — pisanie dobrych aplikacji ............................................................... 242
6.1.1. Łatwość i szybkość reakcji ...................................................................................... 243
6.1.2. Solidność .................................................................................................................. 244
6.1.3. Konsekwencja .......................................................................................................... 244
6.1.4. Prostota .................................................................................................................... 245
6.1.5. Zapewnienie działania ............................................................................................. 246
6.2. Informowanie użytkownika ............................................................................................... 246
6.2.1. Obsługa odpowiedzi na nasze żądania ................................................................... 247
6.2.2. Obsługa modyfikacji wprowadzanych przez inne osoby ...................................... 248
6.3. Projektowanie systemu powiadomień dla aplikacji Ajax ............................................... 253
6.3.1. Modelowanie powiadomień .................................................................................... 254
6.3.2. Definiowanie wymagań interfejsu .......................................................................... 256
6.4. Implementacja frameworka do obsługi powiadomień ................................................... 257
6.4.1. Prezentacja ikony na pasku stanu ........................................................................... 257
6.4.2. Prezentacja szczegółów powiadomienia ................................................................ 260
6.4.3. Scalanie poszczególnych elementów systemu ....................................................... 261
6.5. Zastosowanie frameworka podczas obsługi żądań sieciowych ...................................... 267
6.6. Sygnalizacja aktualności danych ....................................................................................... 271
6.6.1. Zdefiniowanie prostego sposobu wyróżniania ....................................................... 272
6.6.2. Wyróżnianie przy użyciu biblioteki efektów Scriptaculous .................................. 274
6.7. Podsumowanie .................................................................................................................... 275
6.8. Zasoby .................................................................................................................................. 275
7. Bezpieczeństwo a Ajax 277
7.1. Bezpieczeństwo języka JavaScript i przeglądarki ........................................................... 278
7.1.1. Wprowadzanie polityki „serwera pochodzenia” .................................................... 279
7.1.2. Problemy do rozważenia w aplikacjach Ajax ......................................................... 280
7.1.3. Problemy z poddomenami ...................................................................................... 280
7.1.4. Bezpieczeństwo w różnych przeglądarkach .......................................................... 281
7.2. Komunikacja ze zdalnymi usługami ................................................................................. 283
7.2.1. Pośredniczenie w korzystaniu ze zdalnych usług .................................................. 283
7.2.2. Korzystanie z usług WWW ..................................................................................... 284
7.3. Ochrona poufnych danych ................................................................................................. 295
7.3.1. Atak „man in the middle” ........................................................................................ 295
7.3.2. Stosowanie bezpiecznego protokołu HTTP .......................................................... 296
7.3.3. Użycie JavaScriptu do szyfrowania danych przesyłanych protokołem HTTP .... 297
7.4. Zabezpieczanie transmisji danych w aplikacjach wykorzystujących technologię Ajax ....... 300
7.4.1. Projektowanie bezpiecznej warstwy internetowej ................................................ 301
7.4.2. Ograniczanie dostępu do danych ........................................................................... 305
7.5. Podsumowanie .................................................................................................................... 310
7.6. Zasoby .................................................................................................................................. 310
8. Wydajność 313
8.1. Czym jest wydajność? ......................................................................................................... 314
8.2. Szybkość wykonywania kodu JavaScript .......................................................................... 315
8.2.1. Profilowanie aplikacji w najprostszy możliwy sposób ........................................... 316
8.2.2. Użycie programu profilującego Venkman ............................................................. 322
8.2.3. Optymalizacja szybkości wykonywania kodu JavaScript ........................................... 324
Zgłoś jeśli naruszono regulamin