ajax.-niezbednik-projektanta-dynamicznych-aplikacji pełna wersja.pdf

(22172 KB) Pobierz
887767922.003.png
Część II
Tworzenie prawdziwych aplikacji ajaksowych ........53
Rozdział 3. Dynamiczne ładowanie danych:
przeglądarka książek oparta na XML-u ...................................... 55
Zadanie: wczytywanie danych w mniejszych fragmentach ............................ 56
Projekt: przeglądarka książek w formacie XML ............................................. 58
Implementacja przeglądarki książek ............................................................... 63
Testowanie przeglądarki książek ..................................................................... 76
Przerabianie przeglądarki książek ................................................................... 78
Podsumowanie .................................................................................................. 79
Rozdział 4. Wykorzystanie Ajaksa
do dynamicznego wypełniania list: lista akcji ........................... 81
Zadanie: wyświetlanie informacji o wybranych akcjach ................................. 82
Projekt: aplikacja do wyboru akcji ................................................................... 84
Implementacja aplikacji Inwestor ................................................................... 89
Testowanie aplikacji Inwestor ......................................................................... 98
Przerabianie aplikacji Inwestor ..................................................................... 100
Podsumowanie ................................................................................................ 102
Rozdział 5. Pobieranie danych z kanałów RSS ............................................ 103
Zadanie: dynamiczne odpytywanie kanałów informacyjnych .................... 104
Projekt: aplikacja do odczytu wiadomości ..................................................... 106
Implementacja aplikacji Czytnik wiadomości ............................................... 112
Testowanie aplikacji Czytnik wiadomości ..................................................... 121
Przerabianie aplikacji Czytnik wiadomości ................................................... 123
Podsumowanie ................................................................................................ 124
Rozdział 6. Odgadywanie myśli użytkownika
za pomocą autouzupełniania .................................................... 125
Zadanie: przewidywanie wprowadzanych danych ....................................... 126
Projekt: aplikacja z automatycznym uzupełnianiem ..................................... 128
Implementacja aplikacji Uzupełniacz ........................................................... 132
Testowanie aplikacji Uzupełniacz ................................................................. 138
Przerabianie aplikacji Uzupełniacz ............................................................... 139
Podsumowanie ................................................................................................ 140
Rozdział 7. Tworzenie interaktywnego interfejsu użytkownika
ze sprawdzaniem poprawności ................................................. 141
Zadanie: sprawdzanie poprawności danych
wprowadzanych przez użytkownika w czasie rzeczywistym ..................... 143
Projekt: aplikacja Sprawdzacz ........................................................................ 145
Implementacja aplikacji Sprawdzacz ............................................................ 149
Testowanie aplikacji Sprawdzacz .................................................................. 156
Przerabianie aplikacji Sprawdzacz ................................................................ 158
Podsumowanie ................................................................................................ 161
6
Ajax. Niezbędnik projektanta aplikacji plug and play
Rozdział 8. Rewelacyjny interfejs do przeglądania obrazków .................. 163
Zadanie: dynamiczne wczytywanie obrazków .............................................. 164
Projekt: dynamiczna przeglądarka obrazków ............................................... 166
Implementacja aplikacji Obrazownik ............................................................ 168
Testowanie aplikacji Obrazownik .................................................................. 170
Przerabianie aplikacji Obrazownik ................................................................ 172
Podsumowanie ................................................................................................ 173
Rozdział 9. Prezentowanie informacji w zgrabnych okienkach ................ 175
Zadanie: tworzenie okienek informacyjnych ................................................ 176
Projekt: aplikacja z okienkami informacyjnymi ............................................ 180
Implementacja aplikacji Informator .............................................................. 183
Testowanie aplikacji Informator .................................................................... 188
Przerabianie aplikacji Informator .................................................................. 190
Podsumowanie ................................................................................................ 191
Rozdział 10. Przepowiadanie pogody za pomocą Ajaksa ............................ 193
Zadanie: pobieranie dynamicznych danych pogodowych ................................ 194
Projekt: aplikacja z prognozą pogody ............................................................ 195
Implementacja aplikacji Prognoza ................................................................ 200
Testowanie aplikacji Prognoza ....................................................................... 204
Przerabianie aplikacji Prognoza .................................................................... 206
Podsumowanie ................................................................................................ 208
Rozdział 11. Ajaksowy kalkulator kosztów dostawy .................................... 209
Zadanie: pobieranie aktualnych kosztów dostawy ........................................ 210
Projekt: aplikacja Dostawca ........................................................................... 211
Implementacja aplikacji Dostawca ................................................................ 219
Testowanie aplikacji Dostawca ...................................................................... 227
Przerabianie aplikacji Dostawca .................................................................... 230
Podsumowanie ................................................................................................ 233
Rozdział 12. Dodawanie ajaksowego systemu ocen do Twoich stron ....... 235
Zadanie: dodanie systemu oceniania do strony internetowej ...................... 236
Projekt: aplikacja Oceniacz ............................................................................ 238
Implementacja aplikacji Oceniacz ................................................................. 244
Testowanie aplikacji Oceniacz ....................................................................... 250
Przerabianie aplikacji Oceniacz ..................................................................... 253
Podsumowanie ................................................................................................ 257
Dodatki .................................................................... 259
Dodatek A
Przeszłość, teraźniejszość i przyszłość Ajaksa .......................... 261
Dodatek B
Krótki opis obiektu XMLHttpRequest ....................................... 265
Skorowidz ................................................................................... 273
7
Spis treści
5
Pobieranie danych
z kanałów RSS
AJAX W STAROŻYTNEJ GRECJI
Nie umniejszając roli asynchronicznych aplikacji internetowych, był czas, kiedy Ajax
miał większe znaczenie. Mam na myśli czasy starożytnej Grecji, kiedy legendarny grecki
bohater Ajaks walczył w wojnie trojańskiej. Mityczna siła i odwaga Ajaksa zostały opi-
sane przez greckiego poetę Homera w poemacie Iliada .
Jako ktoś, kto przez kilka lat tworzył i utrzymywał wiele witryn internetowych,
bardzo entuzjastycznie podszedłem do kanałów RSS, kiedy zobaczyłem je po
raz pierwszy. Umożliwiają one wyświetlanie informacji z innych serwisów i możesz
umieścić je na własnych stronach. Zapewniają automatyczną aktualizację wi-
tryny, a przynajmniej kanałów informacyjnych, które są na niej umieszczone.
Jeśli nie masz wprawy lub nie chcesz skrupulatnie uzupełniać wiadomości, możesz
przyjąć, że kanał informacyjny umieszczony na Twojej stronie pozwoli udostęp-
niać interesujące, automatycznie aktualizowane informacje. Kanał informacyjny,
który będzie idealnie dopasowany do zawartości Twojej strony, znajdziesz naj-
prawdopodobniej już po chwili poszukiwań.
887767922.004.png 887767922.005.png 887767922.006.png 887767922.001.png 887767922.002.png
W tym rozdziale omówię, w jaki sposób Ajax umożliwia dynamiczne odpy-
tywanie kanałów informacyjnych i wyświetlanie ich zawartości na stronie. Przy-
kładowa aplikacja, którą poznasz w tym rozdziale, udostępnia prosty interfejs
umożliwiający wybieranie różnych usług informacyjnych i następnie wyświe-
tlenie ich na stronie. Oprócz tego podczas wykonywania żądania Ajaksa zoba-
czysz mały ładny obrazek, który jest niemal tak samo odjazdowy jak dynamicz-
ne pobieranie wiadomości.
Poniżej znajduje się lista plików wykorzystywanych w aplikacji Czytnik wiadomo-
ści w tym rozdziale. Są one umieszczone w spakowanym archiwum zawierają-
cym przykładowy kod dołączony do książki i znajdującym się na serwerze FTP
wydawnictwa Helion pod adresem ftp://ftp.helion.pl/przyklady/ajaxnp.zip , w kata-
logu chap05 .
newsfeeder.html — strona główna,
newsfeeder.php — skrypt serwera do pobierania danych z kanałów
informacyjnych,
newsfeeder.css — arkusz stylów do formatowania wiadomości,
ajaxkit.js — podstawowe funkcje Ajaksa w bibliotece ajaksowej,
domkit.js — funkcje do obsługi DOM w bibliotece ajaksowej,
newspaper.gif — ikonka gazety wyświetlana obok każdej wiadomości,
wait.gif — animowana ikonka wyświetlana podczas wykonywania
żądania Ajaksa.
Zadanie: dynamiczne odpytywanie kanałów
informacyjnych
Zadaniem w tym rozdziale jest wykorzystanie Ajaksa do dynamicznego odpyty-
wania usług internetowych udostępniających kanały informacyjne o dane (wia-
domości), a następnie wyświetlanie ich na stronie. Mówiąc dokładniej, poszczegól-
ne wiadomości są tytułami pełnych wiadomości, więc właściwie musisz wyświetlać
tytuły wiadomości, które będą służyć jako łącza do poszczególnych pełnych
wiadomości. Jak się okazuje, każdy element w kanale informacyjnym zawiera
między innymi zarówno tytuł, jak i łącze, tak więc kanał informacyjny udostępnia
wszystkie dane wymagane do wykonania zadania.
Zanim zagłębimy się w zadanie, musimy przede wszystkim przyjrzeć się
samym kanałom informacyjnym i ich roli w internecie. Większość kanałów in-
formacyjnych oparta jest na technologii RSS. Umożliwia ona publikowanie za-
wartości WWW, co oznacza, że możesz łatwo pobierać informacje o nowościach
pojawiających się na różnych witrynach bez konieczności ich odwiedzania. Cho-
ciaż skrót RSS był różnie interpretowany, najnowszym i najbardziej odzwier-
ciedlającym jego zadania rozwinięciem jest Really Simple Syndication (ang.
104
Rozdział 5.
 
Zgłoś jeśli naruszono regulamin