ajax. od podstaw helion.pdf

(22657 KB) Pobierz
888500204.001.png
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
Spis treści
9
Tworzenie przykładowej aplikacji ............................................................................. 247
Dodawanie informacji o miejscu zrobienia zdjęcia w serwisie Flickr ...................... 248
Wyświetlanie zdjęć z Flickr ..................................................................................... 257
Podsumowanie .......................................................................................................... 261
Ćwiczenia .................................................................................................................. 262
Rozdział 8. XSLT oraz XPath ................................................................................................................. 263
XSLT oraz jego cel ...................................................................................................... 264
Elementy XSLT ........................................................................................................... 266
Element xsl:stylesheet .......................................................................................... 266
Element xsl:output ................................................................................................ 267
Element xsl:include ............................................................................................... 268
Elementy xsl:template, xsl:apply-templates oraz xsl:call-template ............................. 268
Atrybut match .................................................................................................. 268
Atrybut name ................................................................................................... 269
Parametry XSLT ............................................................................................... 270
Element xsl:if ....................................................................................................... 270
Elementy xsl:choose, xsl:when oraz xsl:otherwise .................................................... 270
Znoszenie znaczenia specjalnego znaków w XSLT ............................................... 271
Element xsl:for-each .............................................................................................. 272
Element xsl:value-of .............................................................................................. 272
Element xsl:sort .................................................................................................... 273
Element xsl:variable .............................................................................................. 273
Obsługa XSLT w najważniejszych przeglądarkach ........................................................... 274
Wykonywanie transformacji ......................................................................................... 274
Wykonywanie transformacji w przeglądarce Internet Explorer .................................... 274
Wykonywanie transformacji w przeglądarce Firefox ................................................... 279
Wykonywanie transformacji po stronie serwera ........................................................ 281
Tworzenie arkusza stylów XSLT dla koszyka z zakupami ................................................. 284
XPath oraz jego cel ..................................................................................................... 294
Podstawowe możliwości XPath .................................................................................... 294
Wyrażenia XPath ................................................................................................... 295
Kontekst bieżący ............................................................................................. 295
Węzeł główny dokumentu ................................................................................. 296
Element główny dokumentu .............................................................................. 296
Rekurencyjne schodzenie w dół drzewa .............................................................. 296
Określone elementy ......................................................................................... 297
Funkcje XPath ....................................................................................................... 297
Funkcja number ............................................................................................... 297
Funkcja position .............................................................................................. 298
Funkcja count .................................................................................................. 298
Formatowanie łańcuchów znaków ...................................................................... 298
Funkcje arytmetyczne ....................................................................................... 299
Funkcje logiczne .............................................................................................. 299
Wykonywanie zapytań w dokumentach XML za pomocą XPath ........................................ 300
Ulepszenie przykładu z koszykiem z zakupami, tak by używał on XSLT oraz Ajaksa ........... 305
Podsumowanie .......................................................................................................... 313
Ćwiczenia .................................................................................................................. 314
Zgłoś jeśli naruszono regulamin