Ajax_dla_zaawansowanych_Architektura_i_najlepsze_rozwiazania_ajaxzw.pdf

(451 KB) Pobierz
Ajax dla zaawansowanych.
Architektura i najlepsze
rozwi¹zania
Autor: Shawn M. Lauriat
T³umaczenie: Rados³aw Meryk
ISBN: 978-83-246-1585-8
Tytu³ orygina³u:
Advanced Ajax:
Architecture and Best Practices
Format: 168x237, stron: 392
Dowiedz siê:
Jak tworzyæ rozbudowane i idealnie dopasowane do potrzeb interfejsy?
Jak zapewniæ uniwersalnoœæ, skalowalnoœæ oraz ³atwoœæ eksploatacji?
Jak zaprojektowaæ architekturê aplikacji?
Ajax (skrót od ang. Asynchronous JavaScript and XML) to niezwykle popularna
technologia tworzenia serwisów internetowych, w której po³¹czono kilka sprawdzonych
technik. Dziêki tej zintegrowanej technologii do niezbêdnego minimum zosta³a
ograniczona iloœæ danych przesy³anych pomiêdzy serwerem a oknem przegl¹darki
u¿ytkownika. Nie tylko to przysporzy³o Ajaksowi zwolenników — jest on tak¿e bardzo
dobrym narzêdziem do tworzenia interaktywnych serwisów internetowych. Sprawdza
siê równie¿ przy przeprowadzaniu weryfikacji danych oraz rysowaniu wykresów
w czasie rzeczywistym. Dziêki asynchronicznym wywo³aniom umo¿liwia szybsz¹
interakcjê z u¿ytkownikiem, a poszczególne sekcje mog¹ byæ wywo³ywane
indywidualnie, dziêki czemu aplikacja sprawia wra¿enie bardziej dynamicznej.
Ksi¹¿ka „Ajax dla zaawansowanych. Architektura i najlepsze praktyki” to idealna
lektura dla programisty, który mia³ ju¿ przyjemnoœæ pracowaæ z Ajaksem. Podjêto tu
wszystkie zagadnienia niezbêdne do tworzenia dynamicznych aplikacji, niezale¿nie
od u¿ytych narzêdzi i technologii. Na praktycznych przyk³adach przedstawiono sposoby
wykorzystania Ajaksa do tworzenia rozbudowanych interfejsów w przegl¹darce
dla aplikacji internetowych, ze szczególnym uwzglêdnieniem ich uniwersalnoœci,
mo¿liwoœci wielokrotnego wykorzystania kodu, skalowalnoœci oraz ³atwoœci
eksploatacji. Podrêcznik wskazuje zarówno sytuacje, w których Ajax jest przydatny,
jak i takie, w których jego wybór nie spe³ni oczekiwañ u¿ytkownika.
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Planowanie interfejsów Ajaksa
Debugowanie, walidacja i optymalizacja kodu
Tworzenie skalowalnych interefejsów
Architektura aplikacji po stronie serwera oraz klienta
Bezpieczeñstwo aplikacji internetowych
Projektowanie gier
Poznaj wiêcej niezwyk³ych mo¿liwoœci Ajaksa!
Spis treści
Podziękowania ............................................................................................................................... 11
O autorze ......................................................................................................................................... 13
Wprowadzenie ...................................................................................................... 15
0.1. Ajax — znaczenie skrótu ............................................................................. 16
0.1.1. Asynchroniczny ................................................................................ 17
0.1.2. JavaScript ........................................................................................... 17
0.1.3. XML .................................................................................................... 18
0.2. Cele niniejszej książki .................................................................................. 19
0.3. Wymagania wstępne potrzebne do studiowania tej książki ................. 23
Rozdział 1. Użyteczność ........................................................................................................... 27
1.1. Interfejs czy pokaz ........................................................................................ 28
1.1.1. Implementacja .................................................................................. 30
1.2. Oczekiwania użytkowników ...................................................................... 32
1.3. Wskaźniki i inne formy kontaktu z użytkownikami .............................. 34
1.3.1. Throbber ............................................................................................ 34
1.3.2. Wskaźniki postępu ........................................................................... 37
1.3.3. Komunikaty dla użytkowników wyświetlane w pętli ............... 40
1.4. Znaczniki semantyczne ............................................................................... 47
1.4.1. Lepsza dostępność ........................................................................... 48
1.4.2.
Łatwość
użytkowania ...................................................................... 50
5
6
Spis treści
1.4.3.
Łatwiejsza
pielęgnacja .....................................................................51
1.4.4.
Łatwiejsze
przetwarzanie ................................................................52
1.5. Co
łączy
style CSS z językiem JavaScript ..................................................55
Rozdział 2. Dostępność ..............................................................................................................61
2.1. Wymagania WCAG i wytyczne sekcji 508 ................................................62
2.1.1. WCAG .................................................................................................63
2.1.2. Wytyczne sekcji 508 ..........................................................................71
2.2. Czytniki ekranu mogą obsługiwać wywołania Ajax ...............................73
2.2.1. Zastępowanie treści ..........................................................................74
2.2.2. Walidacja formularzy .......................................................................75
2.3. Dyskretny Ajax ..............................................................................................77
2.4. Projektowanie z uwzględnieniem zasad dostępności ............................79
2.4.1. Projektowanie aplikacji o wysokim kontraście ............................79
2.4.2. Interfejs z możliwością powiększania fragmentów ekranu .......81
2.4.3. Kontrolki, do których
łatwo
dotrzeć ..............................................83
2.5. WAI-ARIA .......................................................................................................84
Rozdział 3. Architektura aplikacji po stronie klienta .........................................................87
3.1. Obiekty i wyzwalanie zdarzeń ...................................................................88
3.1.1. Obsługa zdarzeń obiektów wbudowanych ..................................90
3.1.2. Obiekty JavaScript ............................................................................92
3.2. Wzorzec projektowy Model-Widok-Kontroler ......................................108
3.2.1. Model ................................................................................................109
3.2.2. Widok ................................................................................................113
3.2.3. Kontroler ..........................................................................................122
3.3. Projektowanie aplikacji sterowanych zdarzeniami ...............................125
3.3.1. Zalety wykorzystanej architektury ..............................................126
Spis treści
7
Rozdział 4. Debugowanie kodu po stronie klienta ........................................................... 129
4.1. Walidacja, walidacja, walidacja ................................................................ 130
4.1.1. Walidator zestawu znaczników ................................................... 132
4.1.2. Walidator CSS ................................................................................. 133
4.1.3. Ekstraktor semantyczny ................................................................ 134
4.2. Narzędzia w przeglądarkach i wtyczki .................................................. 135
4.2.1. Konsola ............................................................................................. 135
4.2.2. Internet Explorer ............................................................................ 136
4.2.3. Firefox ............................................................................................... 141
4.2.4. Opera ................................................................................................ 147
4.2.5. Safari ................................................................................................. 149
4.3. Profilowanie kodu JavaScript ................................................................... 152
4.3.1. Rozpoznawanie „wąskich gardeł” ............................................... 154
4.4. Testy jednostkowe ...................................................................................... 158
4.4.1. Asercje .............................................................................................. 160
4.4.2. Konfiguracja testu .......................................................................... 161
4.4.3. Właściwy test .................................................................................. 164
4.4.4. Obiekty-atrapy ................................................................................ 166
4.4.5. Zestawy testów ............................................................................... 169
Rozdział 5. Optymalizacja wydajności ................................................................................ 173
5.1. Wydajność bazy danych ........................................................................... 174
5.1.1. Schemat ............................................................................................ 175
5.1.2. Zapytania ......................................................................................... 179
5.2. Zajętość pasma i opóźnienia ..................................................................... 181
5.2.1. Pasmo ............................................................................................... 183
5.2.2. Opóźnienia ...................................................................................... 187
8
Spis treści
5.3. Pamięć podręczna .......................................................................................190
5.3.1. System plików .................................................................................191
5.3.2. Pamięć ...............................................................................................193
5.3.3. Uzupełnienie implementacji .........................................................200
5.4. Wykorzystanie HTTP/1.1 ...........................................................................202
5.4.1. If-Modified-Since ............................................................................205
5.4.2. Range ................................................................................................206
5.5. Profilowanie kodu PHP .............................................................................209
5.5.1. Debuger APD ...................................................................................209
5.5.2. Xdebug ..............................................................................................213
Rozdział 6. Skalowalne i
łatwe
do pielęgnacji aplikacje Ajaksa ....................................219
6.1. Ogólne praktyki ..........................................................................................220
6.1.1. Użycie procesora .............................................................................221
6.1.2. Zużycie pamięci ..............................................................................223
6.2. Wiele prostych interfejsów ........................................................................227
6.2.1. Modularność ....................................................................................227
6.2.2. Późne
ładowanie
.............................................................................230
6.3. Rozbudowane interfejsy ............................................................................233
6.3.1. Aplikacje monolityczne ..................................................................233
6.3.2. Wstępne
ładowanie
........................................................................237
Rozdział 7. Architektura aplikacji po stronie serwera ......................................................239
7.1. Projektowanie aplikacji dla wielu interfejsów .......................................240
7.2. Wzorzec projektowy Model-Widok-Kontroler ......................................244
7.2.1. Model ................................................................................................244
7.2.2. Kontroler ..........................................................................................254
7.2.3. Widok ................................................................................................263
7.3. Wykorzystanie wzorca Fabryka
wraz z mechanizmem obsługi szablonów ..............................................269
Zgłoś jeśli naruszono regulamin