Ajax_Od_podstaw_ajaodp.pdf

(741 KB) Pobierz
Ajax. Od podstaw
Autor: Chris Ullman, Lucinda Dykes
T³umaczenie: Anna Trojan
ISBN: 978-83-246-1287-1
Tytu³ orygina³u:
Beginning Ajax
(Programmer to Programmer)
Format: B5, stron: oko³o 540
oprawa twarda
Wprowadzenie do technologii Ajax dla webmasterów
Jak tworzyæ interaktywne aplikacje webowe w technologii Ajax?
Jak pisaæ i wykorzystywaæ wzorce projektowe w Ajax?
Dlaczego warto skorzystaæ z mo¿liwoœci Ajaksa?
Choæ technologia znana jest od koñca ubieg³ego wieku, uznanie zdoby³a dopiero parê
lat temu, kiedy Google zaczê³o u¿ywaæ jej na wiêksz¹ skalê w swoich projektach.
Wtedy webmasterzy odkryli, jaka si³a tkwi w po³¹czonych technologiach, kryj¹cych siê
pod nazw¹ Ajax. Do³¹cz do nich i wzbogaæ swoje strony WWW, co sprawi, ¿e stan¹ siê
interaktywne bardziej ni¿ kiedykolwiek.
„Ajax.
Od podstaw” to ksi¹¿ka dla twórców witryn internetowych, którzy chc¹
poszerzyæ swoje umiejêtnoœci o niesamowit¹ technologiê Ajax. Chris Ullmann i Lucinda
Dykes, autorzy i wspó³autorzy wielu ksi¹¿ek o technikach programowania, przekazuj¹
tu swoje wieloletnie doœwiadczenie. U³atwiaj¹ czytelnikowi opanowanie jêzyka,
przechodz¹c od podstawowych do coraz bardziej z³o¿onych przypadków opartych
na rzeczywistych przyk³adach. Narracyjny styl ksi¹¿ki sprawia, ¿e jest przyjazna
czytelnikowi, a usystematyzowany uk³ad czyni j¹ przejrzyst¹.
Model i sk³adnia aplikacji opartej na technologii Ajax
Komunikacja z serwerami
Synchroniczne i asynchroniczne przesy³anie danych
Us³ugi sieciowe
API oraz aplikacje mushup
Praca z XML, XSLT oraz XPath
Integracja z formatem wymiany danych JSON
Praca z serwerem MySQL
Usuwanie oraz obs³uga b³êdów
Wzorce projektowe
Wykorzystanie danych zewnêtrznych
Platformy oraz biblioteki dostêpne dla technologii Ajax
Przewodnik po jêzyku JavaScript
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Poznaj nowe sposoby programowania webowego
i wzbogaæ swoje witryny WWW o technologiê Ajax!
Spis treści
O autorach ................................................................................................................................................13
Wprowadzenie .........................................................................................................................................15
Rozdział 1. Wprowadzenie do Ajaksa ..................................................................................................... 23
Czym jest Ajax? ............................................................................................................ 24
Ajax w praktyce ....................................................................................................... 25
flickr ................................................................................................................. 25
Basecamp ......................................................................................................... 27
Amazon (A9.com) ............................................................................................... 28
Google Suggest oraz Google Maps ...................................................................... 29
Inne strony internetowe ...................................................................................... 30
Złe przykłady ..................................................................................................... 31
Ajax
akronim ...................................................................................................... 32
XHTML oraz CSS ................................................................................................ 33
DOM (Document Object Model) ........................................................................... 34
JavaScript ......................................................................................................... 35
XML, XSLT oraz XPath ........................................................................................ 36
Obiekt XMLHttpRequest ..................................................................................... 37
Technologie po stronie serwera .......................................................................... 39
Model aplikacji opartej na Ajaksie .................................................................................. 39
Dlaczego powinno się używać Ajaksa? ...................................................................... 41
Częściowe uaktualnianie strony .......................................................................... 41
Niewidoczne pobieranie danych .......................................................................... 42
Ciągłe uaktualnianie .......................................................................................... 42
Jednolite interfejsy ............................................................................................. 42
Prostota i bogactwo możliwości ........................................................................... 42
Przeciąganie i upuszczanie ................................................................................. 42
Kiedy nie należy używać Ajaksa ................................................................................ 43
Spowolnienie strony ........................................................................................... 43
Zakłócenie działania przycisku Wstecz w przeglądarce .......................................... 43
Zakłócanie działania zakładek oraz blokowanie indeksów wyszukiwarek ................. 44
Obciążenie dla przeglądarki ................................................................................ 44
Kto może bądź nie może używać Ajaksa? .................................................................. 44
Stwórz swój własny przykład .......................................................................................... 45
Podsumowanie ............................................................................................................ 55
Ćwiczenia
.................................................................................................................... 55
6
Ajax. Od podstaw
Rozdział 2. Powtórka z JavaScriptu ..................................................................................................... 57
Jądro JavaScriptu ......................................................................................................... 58
Składnia ................................................................................................................. 58
Zmienne ................................................................................................................. 58
Podstawowe typy danych .................................................................................... 59
Referencyjne typy danych ................................................................................... 60
Operatory ............................................................................................................... 60
Operator przypisania .......................................................................................... 61
Operatory arytmetyczne ...................................................................................... 61
Operatory porównania ........................................................................................ 61
Operatory logiczne ............................................................................................. 62
Operatory inkrementacji oraz dekrementacji ......................................................... 63
Instrukcje ............................................................................................................... 63
Instrukcje warunkowe ......................................................................................... 64
Pętle ................................................................................................................. 65
Funkcje .................................................................................................................. 66
JavaScript zorientowany obiektowo ................................................................................ 67
Obiekty wbudowane ................................................................................................ 68
Obiekty przeglądarki ................................................................................................ 68
Obiekty zdefiniowane przez użytkownika .................................................................... 69
Konstruktory ...................................................................................................... 70
Prototypy ................................................................................................................ 71
Niszczenie obiektów ........................................................................................... 72
DOM (Document Object Model) ..................................................................................... 74
Dokument jako drzewo potomków ............................................................................ 75
Dokument jako drzewo węzłów ................................................................................. 75
Metody dostępu do obiektów w DOM ........................................................................ 76
Metoda getElementById ..................................................................................... 76
Metoda getElementsByTagName ......................................................................... 77
Tworzenie węzłów .................................................................................................... 78
Alternatywne rozwiązanie
innerHTML .................................................................... 80
JavaScript oraz zdarzenia .............................................................................................. 81
Modele zdarzeń ...................................................................................................... 82
Rejestracja zdarzeń ................................................................................................. 82
Model rejestracji zdarzeń w przeglądarce Internet Explorer .................................... 83
Model rejestracji zdarzeń w DOM z W3C .............................................................. 84
Obiekty zdarzeń ...................................................................................................... 84
Podsumowanie ............................................................................................................ 88
Ćwiczenia
.................................................................................................................... 89
Rozdział 3. Ajax oraz technologie po stronie serwera ..........................................................................91
Ajax oraz technologie po stronie serwera ........................................................................ 92
Formularze oraz kontrolki HTML ............................................................................... 92
Model przesyłania formularzy ................................................................................... 92
Model przesyłania formularzy w Ajaksie oraz JavaScripcie ........................................... 94
Od strony serwera ........................................................................................................ 94
Przesyłanie danych do serwera ................................................................................. 95
Serwer otrzymuje
żądanie
........................................................................................ 95
Pisanie odpowiedzi HTTP .............................................................................................. 96
Obiekt XMLHttpRequest .......................................................................................... 97
Funkcja zwrotna ................................................................................................. 98
Właściwość responseText ................................................................................... 98
Spis treści
7
Właściwość responseXML .................................................................................. 99
Usuwanie błędów z responseXML ..................................................................... 100
Wykorzystywanie danych ................................................................................... 101
Technologie po stronie serwera ................................................................................... 102
ASP.NET ............................................................................................................... 102
Przykład wykorzystujący Ajaksa oraz ASP.NET ..................................................... 104
PHP ..................................................................................................................... 114
Przykład wykorzystujący Ajaksa oraz PHP ........................................................... 115
Serwlety Javy ........................................................................................................ 120
Przykład wykorzystujący Ajaksa oraz serwlety Javy .............................................. 121
Którą technologię powinno się wykorzystywać? ............................................................. 125
Podsumowanie .......................................................................................................... 126
Ćwiczenia
.................................................................................................................. 126
Rozdział 4. Techniki Ajaksa ...................................................................................................................127
Obiekt XMLHttpRequest .............................................................................................. 128
Tworzenie obiektu XMLHttpRequest ............................................................................. 129
Użycie synchroniczne ............................................................................................. 129
Użycie asynchroniczne ........................................................................................... 130
Właściwość readyState .......................................................................................... 130
Właściwości oraz metody obiektu XMLHttpRequest .................................................. 131
Często popełniane błędy ........................................................................................ 137
Bardziej skomplikowane problemy .......................................................................... 138
Problem z tym samym pochodzeniem ................................................................ 138
Kontrola pamięci podręcznej
agresywna polityka przeglądarki Internet Explorer .... 139
Implikacje działania we wszystkich przeglądarkach ............................................. 143
Metoda POST ............................................................................................................. 144
Zalety i wady używania metod POST oraz GET ............................................................... 147
Inne techniki Ajaksa ................................................................................................... 147
Ukryte ramki ......................................................................................................... 147
Pomysł ............................................................................................................ 148
Zalety oraz wady .............................................................................................. 154
Ukryte ramki typu iframe ........................................................................................ 154
Pomysł ............................................................................................................ 155
Zalety oraz wady .............................................................................................. 158
Dynamiczne
ładowanie
skryptu ............................................................................... 158
Pomysł ............................................................................................................ 158
Zalety oraz wady .............................................................................................. 161
Obrazki oraz cookies ............................................................................................. 161
Pomysł ............................................................................................................ 162
Zalety oraz wady .............................................................................................. 166
Podsumowanie .......................................................................................................... 166
Ćwiczenie
.................................................................................................................. 167
Rozdział 5. Praca z XML ........................................................................................................................169
Podstawy XML ............................................................................................................ 170
Tworzenie znaczników ............................................................................................ 170
Składnia XML ....................................................................................................... 170
Dokumenty XML poprawne składniowo oraz strukturalnie ......................................... 172
Ekstrakcja danych za pomocą JavaScriptu .................................................................... 177
Wykorzystywanie węzłów ........................................................................................ 177
Dostęp do elementów XML po ich nazwie ................................................................ 179
Dostęp do wartości atrybutów ................................................................................ 179
8
Ajax. Od podstaw
Wykorzystywanie CSS z danymi XML ............................................................................ 183
Wykorzystywanie CSS z dokumentami XML .............................................................. 185
Wykorzystywanie CSS z Ajaksem ............................................................................ 185
Właściwość style ............................................................................................. 185
Właściwość className .................................................................................... 186
Podsumowanie .......................................................................................................... 186
Ćwiczenia
.................................................................................................................. 187
Rozdział 6. Usuwanie oraz obsługa błędów ..........................................................................................189
Obsługa błędów w JavaScripcie ................................................................................... 190
Obsługa wyjątków ................................................................................................. 190
Program obsługi zdarzeń onerror ............................................................................ 192
Konsola błędów w przeglądarkach Mozilla ............................................................... 194
Microsoft Script Debugger ..................................................................................... 196
Firebug ................................................................................................................. 199
Inspektory DOM ......................................................................................................... 202
Inspektor DOM z przeglądarki Firefox ...................................................................... 202
Inspektor DOM w przeglądarce Internet Explorer ...................................................... 204
MODI (Mouseover DOM Inspector) ......................................................................... 204
Rozwiązywanie problemów związanych z Ajaksem .......................................................... 205
Wykorzystywanie dodatku Firebug z XMLHttpRequest ............................................... 206
Dodatek Live HTTP Headers ................................................................................... 206
Podsumowanie .......................................................................................................... 208
Ćwiczenia
.................................................................................................................. 209
Rozdział 7. Usługi sieciowe, API oraz aplikacje typu mashup ..............................................................211
Czym jest usługa sieciowa? ......................................................................................... 212
Publiczne usługi sieciowe ...................................................................................... 213
Wykorzystywanie usług sieciowych należących do innych podmiotów ............................... 214
Struktura usługi sieciowej ........................................................................................... 216
Podejście oparte na REST ...................................................................................... 217
Podejście oparte na SOAP ..................................................................................... 218
Integrowanie usługi sieciowej z własną aplikacją opartą na Ajaksie ................................ 219
Wykorzystywanie usługi z obiektem XMLHttpRequest ............................................... 220
Polityka tego samego pochodzenia .................................................................... 220
Tworzenie proxy dla aplikacji .................................................................................. 221
Sztuczka ze znacznikiem script .............................................................................. 228
Przyszłe alternatywy .............................................................................................. 231
Wykorzystywanie API ................................................................................................... 232
Różnica między usługami sieciowymi a API .............................................................. 233
Google Maps API .................................................................................................. 234
Klucz Google Maps API ..................................................................................... 234
Obiekt mapy .................................................................................................... 234
Obiekt Geocode ............................................................................................... 235
Metoda fabrykująca XMLHttpRequest ................................................................ 236
Aplikacje typu mashup ................................................................................................ 244
W jaki sposób Ajax ułatwia wykorzystywanie aplikacji typu mashup ................................. 245
Wykorzystywanie Flickr API ..................................................................................... 246
Etykietki (lista ważona) .......................................................................................... 246
Wykorzystywanie klucza Flickr API ........................................................................... 247
Zgłoś jeśli naruszono regulamin