SlideShare a Scribd company logo
1 of 15
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TREœCI
                                         AJAX w mgnieniu oka
           KATALOG KSI¥¯EK               Autor: Phil Ballard
                                         T³umaczenie: Jacek Lempart, Magdalena Faszczewska
                      KATALOG ONLINE     ISBN: 83-246-0662-9
                                         Tytu³ orygina³u: Teach Yourself AJAX in 10 Minutes
       ZAMÓW DRUKOWANY KATALOG           Format: A5, stron: 256


              TWÓJ KOSZYK                  Opanuj technologiê, która zrewolucjonizowa³a sposób obs³ugi aplikacji internetowych
                                             • Poznaj podstawy tworzenia witryn WWW
                    DODAJ DO KOSZYKA         • Stwórz aplikacje w technologii AJAX
                                             • Wykorzystaj dane w formacie XML

         CENNIK I INFORMACJE             AJAX, bêd¹cy po³¹czeniem JavaScriptu, jêzyka XML i arkuszy stylów, to jedna
                                         z technologii, które wprowadzi³y ostatnio sporo zamieszania w œrodowisku projektantów
                                         witryn i aplikacji WWW. Jej zastosowanie zdecydowanie upraszcza i przyspiesza
                   ZAMÓW INFORMACJE      korzystanie z programów dostêpnych przez przegl¹darkê WWW. AJAX sprawia,
                     O NOWOœCIACH
                                         ¿e zawartoœæ strony nie musi byæ prze³adowywana po ka¿dej akcji u¿ytkownika.
                                         Witryna WWW przygotowana z wykorzystaniem technologii AJAX przypomina
                       ZAMÓW CENNIK      tradycyjn¹ aplikacjê, komunikacja z serwerem nie przeszkadza w korzystaniu z niej,
                                         a dynamiczne zmiany elementów strony przebiegaj¹ znacznie szybciej.

                 CZYTELNIA               Ksi¹¿ka „AJAX w mgnieniu oka” to wprowadzenie do tematyki projektowania witryn
                                         i aplikacji WWW w technologii AJAX. Czytaj¹c j¹, opanujesz podstawy stosowania
          FRAGMENTY KSI¥¯EK ONLINE       AJAX-a we w³asnych projektach. Poznasz technologie przetwarzania danych ze stron
                                         WWW po stronie przegl¹darki i serwera oraz dowiesz siê, czym jest obiektowy model
                                         dokumentu. Nauczysz siê korzystania z obiektów JavaScriptu, jêzyka XML i protoko³u
                                         SOAP. Stworzysz w³asne aplikacje w technologii AJAX i dowiesz siê, jak unikaæ
                                         najczêœciej pope³nianych b³êdów.
                                             • Podstawy jêzyka HTML
                                             • Zasada dzia³ania protoko³u HTTP
                                             • JavaScript i PHP
                                             • Obiektowy model dokumentu (DOM)
                                             • Struktura aplikacji AJAX
                                             • Obiekty JavaScriptu
                                             • Zwracanie danych w postaci tekstu i plików XML
Wydawnictwo Helion
                                             • Technologia AHAH
ul. Koœciuszki 1c
                                             • Us³ugi sieciowe i protokó³ SOAP
44-100 Gliwice
tel. 032 230 98 63                           • Korzystanie z biblioteki Rico
e-mail: helion@helion.pl                                          Zacznij tworzyæ nowoczesne witryny
O autorze .....................................................................9
                  Wprowadzenie ............................................................11
                  O książce ................................................................................... 11
                  Czym jest Ajax? ........................................................................ 12
                  Dla kogo przeznaczona jest ta książka ..................................... 13
                  Czego potrzebuję, aby skorzystać z tej książki? ....................... 13
                  Konwencje użyte w książce ...................................................... 14

Część I           Powtórka z technologii internetowych ..........15
Rozdział 1. Anatomia witryny internetowej ....................................17
            Krótka historia sieci Internet ..................................................... 17
            Działanie sieci Internet ............................................................. 18
            Podsumowanie .......................................................................... 24
Rozdział 2. Pisanie stron internetowych w języku HTML ................25
            Wprowadzenie do HTML ......................................................... 25
            Elementy strony HTML ............................................................ 28
            Bardziej zaawansowana strona HTML ..................................... 33
            Niektóre użyteczne znaczniki HTML ....................................... 35
            Kaskadowe Arkusze Stylów (CSS) w dwie minuty ................. 36
            Podsumowanie .......................................................................... 37
Rozdział 3. Wysyłanie żądań przy użyciu protokołu HTTP ...............39
            Wprowadzenie do HTTP .......................................................... 39
            Żądanie i odpowiedź HTTP ...................................................... 40
            Formularze HTML .................................................................... 43
            Podsumowanie .......................................................................... 46
6                                                                             Ajax w mgnieniu oka


Rozdział 4.       Programowanie po stronie klienta przy użyciu JavaScript .. 47
                  O języku JavaScript ...................................................................47
                  Na samym dnie ..........................................................................49
                  Manipulacja danymi w JavaScript ............................................60
                  Podsumowanie ..........................................................................63
Rozdział 5. Programowanie po stronie serwera przy użyciu PHP .....65
            Wprowadzenie do PHP .............................................................65
            Osadzanie PHP w stronach HTML ...........................................66
            Zmienne w PHP ........................................................................68
            Kontrola przebiegu programu ...................................................70
            Podsumowanie ..........................................................................72
Rozdział 6. Krótkie wprowadzenie do XML ....................................73
            Wprowadzenie do XML ............................................................73
            Podstawy XML .........................................................................74
            JavaScript i XML ......................................................................78
            Obiektowy model dokumentu (DOM) ......................................79
            Podsumowanie ..........................................................................81

Część II          Wprowadzenie do technologii Ajax ............... 83
Rozdział 7. Anatomia aplikacji Ajax ..............................................85
            Technika Ajax jest potrzebna ....................................................85
            Wprowadzenie do Ajax .............................................................88
            Części składowe Ajax ...............................................................90
            Złożenie wszystkiego w jedną całość .......................................93
            Podsumowanie ..........................................................................94
Rozdział 8. Obiekt XMLHTTPRequest ...........................................95
            Więcej o obiektach JavaScript ..................................................95
            Wprowadzenie do XMLHTTPRequest .....................................97
            Tworzenie obiektu XMLHTTPRequest ....................................98
            Podsumowanie ........................................................................105
Rozdział 9. Komunikacja z serwerem ..........................................107
            Wysyłanie żądań do serwera ...................................................107
            Monitorowanie stanu serwera .................................................112
            Funkcja zwrotna ......................................................................114
            Podsumowanie ........................................................................116
Rozdział 10. Używanie zwróconych danych ...................................117
             Właściwości responseText oraz responseXML ......................117
             Kolejna przydatna właściwość JavaScript DOM ....................121
             Parsowanie responseXML ......................................................122
Spis treści                                                                                              7


                  Zapewnienie obsługi użytkownika ......................................... 123
                  Podsumowanie ........................................................................ 125
Rozdział 11. Nasza pierwsza aplikacja Ajax ..................................127
             Budowanie aplikacji Ajax ....................................................... 127
             Dokument HTML ................................................................... 128
             Dodanie kodu JavaScript ........................................................ 129
             Złożenie wszystkiego w jedną całość ..................................... 133
             Podsumowanie ........................................................................ 136

Część III Bardziej zaawansowane technologie Ajax .... 137
Rozdział 12. Zwracanie danych w postaci tekstu .........................139
             Więcej korzyści z właściwości responseText ......................... 139
             Podsumowanie ........................................................................ 146
Rozdział 13. AHAH — Asynchroniczny HTML i HTTP .....................147
             Wprowadzenie do AHAH ....................................................... 147
             Utworzenie małej biblioteki dla AHAH ................................. 149
             Wykorzystanie myAHAHlib.js ............................................... 151
             Podsumowanie ........................................................................ 156
Rozdział 14. Zwracanie danych w postaci XML ............................157
             „x” w Ajax .............................................................................. 157
             Własność responseXML ......................................................... 158
             Projekt — czytnik nagłówków RSS ....................................... 162
             Podsumowanie ........................................................................ 170
Rozdział 15. Usługi sieciowe i protokół REST ...............................171
             Wprowadzenie do usług sieciowych ....................................... 171
             Protokół REST ........................................................................ 172
             Wykorzystanie protokołu REST w praktyce .......................... 174
             REST i AJAX ......................................................................... 178
             Podsumowanie ........................................................................ 179
Rozdział 16. Usługi sieciowe korzystające z protokołu SOAP .........181
             Poznajemy protokół SOAP
              (ang. Simple Object Access Protocol) .................................. 181
             Protokół SOAP ........................................................................ 183
             Wykorzystywanie modelu Ajax i protokołu SOAP ................ 186
             Ponowne spojrzenie na protokoły SOAP i REST ................... 187
             Podsumowanie ........................................................................ 188
8                                                                          Ajax w mgnieniu oka


Rozdział 17. Biblioteka języka JavaScript dla modelu Ajax ............189
             Biblioteka modelu Ajax ..........................................................189
             Przegląd myAHAHlib.js .........................................................190
             Implementacja naszej biblioteki ..............................................191
             Korzystanie z biblioteki ..........................................................195
             Poszerzanie biblioteki .............................................................198
             Podsumowanie ........................................................................198
Rozdział 18. Pułapki Ajax ............................................................199
             Typowe błędy Ajax .................................................................199
             Przycisk Wstecz ......................................................................199
             Ulubione i hiperłącza ..............................................................200
             Informowanie użytkownika o zdarzeniu .................................201
             Radzenie sobie z brakiem obsługi Ajax ..................................201
             Roboty indeksujące w wyszukiwarkach .................................202
             Aktywne elementy strony .......................................................203
             Nie używaj technologii Ajax, gdy jest to nieodpowiednie .....204
             Bezpieczeństwo .......................................................................204
             Testowy kod na różnych platformach .....................................205
             Ajax nie naprawi złego projektu .............................................205
             Niektóre programistyczne pułapki ..........................................206
             Podsumowanie ........................................................................207

Część IV Komercyjne oraz otwarte zasoby
         technologii Ajax ........................................ 209
Rozdział 19. Zestaw narzędzi prototype.js ....................................211
             Wprowadzenie do prototype.js ................................................211
             Obudowywanie obiektu XMLHTTPRequest ..........................214
             Przykładowy projekt — czytnik cen akcji ..............................217
             Podsumowanie ........................................................................219
Rozdział 20. Zastosowanie Rico ..................................................221
             Wstęp do Rico .........................................................................221
             Inne narzędzia Rico do tworzenia interfejsu ...........................226
             Podsumowanie ........................................................................231
Rozdział 21. Wykorzystanie XOAD ................................................233
             Wprowadzenie do XOAD .......................................................233
             XOAD HTML .........................................................................237
             Zaawansowane programowanie w XOAD .............................239
             Podsumowanie ........................................................................240
                  Skorowidz ................................................................241
Rozdział 7.




W tym rozdziale zawarte są informacje o budowaniu poszczególnych bloków
Ajax oraz o tym, jak one ze sobą współpracują tworząc architekturę aplikacji
Ajax. W dalszych rozdziałach części II, „Wprowadzenie do Ajax”, zostaną do-
kładniej przeanalizowane te komponenty, które ostatecznie składają się na
działającą aplikację Ajax.



Technika Ajax jest potrzebna
W części I, „Przypomnienie technologii internetowych”, dokonaliśmy przeglądu
głównych technologii, które umożliwiają budowę komponentów aplikacji Ajax.
Posiadasz zatem przynajmniej podstawową wiedzę na temat JavaScript, PHP
oraz XML, czyli wszystkiego, z czego będziemy korzystać w części II.

Zanim przystąpimy do omawiania poszczególnych komponentów, przyjrzyjmy
się dokładniej temu, czego oczekujemy od naszej aplikacji Ajax.
86                                Część II ¨ Wprowadzenie do technologii Ajax


Interakcje tradycyjne
kontra Ajax klient-serwer
W rozdziale 1., „Anatomia witryny internetowej”, został omówiony tradycyjny
model interfejsu witryny internetowej. Kiedy pracujesz z taką witryną, po-
szczególne strony zawierające tekst, obrazki, formularze do wprowadzania da-
nych itd. prezentowane są raz w danej chwili. Każda strona musi zostać obsłu-
żona z osobna przed przejściem do kolejnej.

Przykładowo, możesz wypełnić formularz z danymi, wprowadzając je i popra-
wiając tyle razy, ile zechcesz. Jednocześnie wiesz, że dane nie powędrują do
serwera, dopóki formularz nie zostanie ostatecznie zatwierdzony.

Rysunek 7.1 ilustruje ten rodzaj interakcji.

Rysunek 7.1.
Tradycyjne interakcje
klient-serwer




Po zatwierdzeniu formularza lub kliknięciu łącza nawigacyjnego musisz cze-
kać, dopóki ekran przeglądarki jest odświeżany, by wyświetlić nową lub sko-
rygowaną stronę, która została wygenerowana przez serwer.

W miarę jak Twoje doświadczenie jako użytkownika Internetu się wzbogaca,
korzystanie z takiego interfejsu staje się niemal drugą naturą. Uczysz się pew-
nych praktycznych zachowań, które pozwalają unikać kłopotów, jak na przy-
kład „nie naciskaj ponownie przycisku zatwierdzającego formularz” czy „nie
naciskaj przycisku Wstecz po zatwierdzeniu formularza”.

Niestety, interfejsy użytkownika zbudowane w oparciu o ten model posiadają
kilka wad. Pierwsza to taka, że istnieje znaczące opóźnienie podczas wczyty-
wania nowej lub skorygowanej strony. Następuje przerwanie tego, co użyt-
kownicy postrzegają jako tak zwany przebieg aplikacji.
Rozdział 7. ¨ Anatomia aplikacji Ajax                                        87


Co więcej, cała strona musi zostać wczytana przy każdej okazji, nawet jeśli
większość jej zawartości jest identyczna z poprzednią stroną. Elementy wspól-
ne dla wielu stron danej witryny internetowej, takie jak nagłówki, stopki
czy sekcje nawigacyjne, mogą stanowić znaczną proporcję danych zawartych
w stronie.

Rysunek 7.2 ilustruje witrynę wyświetlającą strony przed zatwierdzeniem for-
mularza i po nim, ukazując, jak wiele identycznej zawartości zostało wczytane
ponownie oraz jak relatywnie mało zmieniła się zawartość strony.




Rysunek 7.2. Wiele elementów strony jest niepotrzebnie ponownie wczytywana

To niepotrzebne pobieranie danych marnuje pasmo i zwiększa opóźnienie we
wczytywaniu każdej nowej strony.

           Pasmo odnosi się do pojemności kanałów komunikacyjnych prze-
           noszących informację. W Internecie pasmo jest zwykle mierzone w bps
           (ang. bits per second — bity na sekundę) lub wyższych mnożni-
           kach, takich jak Mbps (ang. milion bits per second — milion bitów
           na sekundę).
88                              Część II ¨ Wprowadzenie do technologii Ajax


Bogate doznania użytkownika
Połączenie skutków problemów opisanych powyżej powoduje, że użytkownik
posiada dużo gorszy interfejs użytkownika w sensie jego interaktywności
w porównaniu do interfejsów oferowanych przez ogromną większość aplikacji
biurkowych.

W aplikacjach stacjonarnych oczekujesz, że wyświetlana zawartość programu
pozostaje widoczna, a elementy interfejsu reagują na wydawane polecenia,
podczas gdy proces przetwarzania wykonuje się po cichu w tle. Gdy na przy-
kład piszę ten rozdział wykorzystując procesor tekstu, mogę zapisać dokument
na dysku, przewinąć stronę w górę lub dół, zmienić krój czcionki i jej rozmiar
bez potrzeby czekania przy każdej okazji, aż cały ekran zostanie odświeżony.

Ajax pozwala dodać do interfejsu Twojej aplikacji internetowej funkcjonalność,
która dotychczas bardziej powszechnie spotykana była w aplikacjach biurkowych.
Wiąże się to często z określeniem bogatego doznania użytkownika (ang. rich
user experience).



Wprowadzenie do Ajax
By wzbogacić doznania użytkownika, musisz dodać pewne możliwości do tra-
dycyjnego podejścia do interfejsu aplikacji internetowych. Chcesz, aby strona
Twojego użytkownika była interaktywna, odpowiadała na akcje użytkownika
zmieniając zawartość i by była aktualizowana bez jakichkolwiek przerw na
wczytywanie strony lub odświeżanie ekranu.

Aby to osiągnąć, Ajax buduje dodatkową warstwę przetwarzania, pomiędzy
stroną internetową a serwerem.

Warstwa ta często określana jest mianem Modułu Ajax lub Osnowy Ajax.
Przechwytuje żądania od użytkownika, a w tle obsługuje komunikację z serwe-
rem — po cichu, dyskretnie i asynchronicznie. Rozumiemy przez to, że żądania
i odpowiedzi serwera nie muszą być zbieżne z określoną akcją użytkownika,
ale mogą mieć miejsce w dowolnym, wygodnym dla użytkownika czasie, by
poprawić działanie aplikacji. Przeglądarka internetowa nie zamraża się teraz
i nie oczekuje ukończenia przez serwer ostatniego żądania. Zamiast tego, po-
zwala użytkownikowi na przewijanie ekranu strony, klikanie czy pisanie na
bieżącej stronie.
Rozdział 7. ¨ Anatomia aplikacji Ajax                                     89


Aktualizowanie elementów strony, tak by odpowiadały skorygowanym danym
otrzymanym z serwera, jest również wykonywane przez Ajax. Dzieje się to
dynamicznie podczas ciągłego korzystania ze strony.

Rysunek 7.3 prezentuje, jak wyglądają te interakcje.

Rysunek 7.3.
Interakcje Ajax
klient-serwer




Prawdziwa aplikacja Ajax
— Google Suggest
Aby zobaczyć przykład aplikacji Ajax w akcji, spójrzmy na Google Suggest.
Aplikacja ta rozszerza interfejs znajomej wyszukiwarki Google, oferując użyt-
kownikowi sugestie dla odpowiednich terminów, w oparciu o to, co zostało
w danym momencie wpisane.

Za każdym naciśnięciem klawisza przez użytkownika warstwa Ajax aplikacji
odpytuje serwer Google, czy istnieje odpowiednio podobna fraza; jeśli tak, to
wyświetla zwrócone dane w liście rozwijanej. Wraz z każdą sugerowaną frazą
listowana jest również liczba rezultatów, których spodziewałaby się wyszuki-
warka dla poszukiwania przeprowadzonego dla tej frazy. W każdym momencie
użytkownik ma możliwość wyboru jednej z tych sugestii zamiast kontynuowania
pisania, a wyszukiwarka Google wykona przeszukiwanie dla wybranej frazy.

Ponieważ serwer jest odpytywany przy każdym naciśnięciu klawisza, lista
rozwijana jest dynamicznie aktualizowana, bez zbędnego czekania na odświe-
żenie strony lub innych podobnych przerwań.

Rysunek 7.4 pokazuje działający program. Możesz sam wypróbować tę aplika-
cję, korzystając z hiperłącza strony domowej Google http://www.google.com/
webhp?complete=1&hl=en.
90                               Część II ¨ Wprowadzenie do technologii Ajax




Rysunek 7.4. Przykład aplikacji Ajax — Google Suggest

A teraz zidentyfikujmy poszczególne komponenty takiej aplikacji Ajax oraz
zobaczmy, jak one współpracują.

           Google zaprezentował również inne aplikacje Ajax, które możesz wy-
           próbować, jak na przykład witrynę internetową gmail, będącą serwisem
           poczty elektronicznej. Innym przykładem może też być Google Maps.
           Po szczegóły sięgnij pod adres: http://www.google.com.




Części składowe Ajax
Teraz przeanalizujmy poszczególne komponenty aplikacji Ajax.


Obiekt XMLHTTPRequest
Kiedy klikasz łącze lub zatwierdzasz formularz HTML, wysyłasz żądanie HTTP
do serwera, który odpowiada wysyłając do Ciebie nową lub zmodyfikowaną stronę.
Aby jednak Twoja aplikacja internetowa mogła pracować asynchronicznie,
Rozdział 7. ¨ Anatomia aplikacji Ajax                                     91


musisz posiadać możliwość wysłania żądania HTTP do serwera bez powiąza-
nia go z żądaniem wyświetlenia nowej strony.

Możesz to osiągnąć dzięki obiektowi XMLHTTPRequest. Ten obiekt JavaScript
potrafi utworzyć połączenie z serwerem, a następnie wysyłać do niego żądania
HTTP bez potrzeby powiązania ich z wczytywaniem strony.

W następnych rozdziałach dowiesz się, jak utworzyć instancję tego obiektu
oraz jak jego właściwości i metody mogą być wykorzystane przez procedury
JavaScript, zawarte w stronie internetowej, aby ustanowić asynchroniczne po-
łączenie z serwerem.

           Ze względów bezpieczeństwa obiekt XMLHTTPRequest może gene-
           ralnie łączyć się z adresami URL tej samej domeny, co wywoły-
           wana strona, oraz nie może bezpośrednio łączyć się ze zdalnym
           serwerem.


Rozdział 8., „Obiekt XMLHTTPRequest”, omawia, jak utworzyć instancję
obiektu XMLHTTPRequest oraz opisuje pokrótce właściwości i metody
obiektu.


Rozmawianie z serwerem
W tradycyjnym modelu strony internetowej, kiedy wysyłasz żądanie poprzez
hiperłącze lub zatwierdzenie strony, serwer przyjmuje to żądanie, wykonuje
wszelkie wymagane czynności po stronie serwerowej, by wreszcie wysłać do
Ciebie nową stronę z zawartością odpowiadającą akcji, jaką wykonałeś.

Gdy to przetwarzanie ma miejsce, interfejs użytkownika jest skutecznie za-
mrożony. Zapewne wiesz już, kiedy serwer kończy swoje zadanie — kiedy
w przeglądarce pojawia się nowa lub zmodyfikowana strona.

Jednakże w przypadku asynchronicznych żądań serwera komunikacja odbywa
się w tle, a ich ukończenie niekoniecznie musi być powiązane z odświeżaniem
strony czy wczytywaniem nowej. Dlatego też musisz ustalić, w jakim stopniu
serwer obsłużył dane żądanie.

Obiekt XMLHTTPRequest posiada wygodną właściwość, która raportuje postęp
obsługi żądania serwera. Możesz sprawdzić tę właściwość, używając procedur
JavaScript celem określenia momentu, w którym serwer zakończy prace, a wyniki
jego działania są dostępne do wykorzystania.
92                                 Część II ¨ Wprowadzenie do technologii Ajax


Z tego powodu Twój kod Ajax musi zawierać procedurę monitorującą status
żądań serwera i odpowiednio się zachowywać. Przyjrzymy się temu zagadnie-
niu bliżej w rozdziale 9., „Rozmawianie z serwerem”.


Co dzieje się na serwerze?
Dotychczas, gdy interesowaliśmy się skryptami serwerowymi, komunikacja za
pomocą obiektu XMLHTTPRequest była po prostu innym żądaniem HTTP. Apli-
kacje Ajax niewiele „przejmują się” tym, jakie języki programowania lub śro-
dowisko jest obecne na serwerze. Przyjmując, że strona kliencka warstwy Ajax
otrzymuje na czas poprawnie sformatowane odpowiedzi HTTP z serwera, wszyst-
ko będzie pracować poprawnie.

Możliwe jest napisanie prostej aplikacji Ajax w całości bez skryptów serwe-
rowych, po prostu wywołując obiekt XMLHTTPRequest ze statycznym zasobem
serwera, jak na przykład dokumentem XML lub plikiem tekstowym.

Aplikacje Ajax mogą wywoływać rozmaite inne serwerowe zasoby, takie jak
na przykład usługi sieciowe (ang. web services). W dalszej części niniejszej książ-
ki zapoznamy się z pewnymi przykładami wywoływania usług sieciowych, ko-
rzystając z takich protokołów jak SOAP czy REST.

            W niniejszej książce będziemy korzystać z popularnego serwerowe-
            go języka skryptowego PHP w procedurach serwerowych. Jeśli jednak
            czujesz się bardziej komfortowo używając takich języków jak ASP,
            JSP czy innych, nic nie stoi na przeszkodzie, abyś z nich korzystał.



Obsługa odpowiedzi serwera
Kiedy jesteś informowany o tym, że asynchroniczne żądanie zostało z powo-
dzeniem wykonane, możesz wykorzystać informacje zwrócone przez serwer.

Ajax pozwala, aby zwracane dane mogły mieć różną postać, w tym na przy-
kład tekst ASCII oraz dane XML.

W zależności od natury aplikacji, informacje te mogą zostać następnie skon-
wertowane do innej postaci, wyświetlone lub przetworzone w pewien założony
sposób w obrębie bieżącej strony.

Skupimy się na tych kwestiach w rozdziale 10., „Używanie zwróconych danych”.
Rozdział 7. ¨ Anatomia aplikacji Ajax                                       93


Inne zadania zarządzające
Od aplikacji Ajax wymagane będzie również wykonanie wielu innych zadań.
Przykładem może być wykrywanie błędów oraz ich odpowiednia obsługa, czy
też informowanie użytkownika o stanie przesłanych żądań Ajax.

W kolejnych rozdziałach tej książki zostanie zaprezentowanych wiele przykładów.



Złożenie wszystkiego
w jedną całość
Przypuśćmy, że chcesz zaprojektować nową aplikację Ajax lub zaktualizować
odziedziczoną aplikację internetową, tak by obsługiwała techniki Ajax. Jak się
możesz z tym uporać?

Po pierwsze musisz zdecydować, jakie zdarzenia strony i akcje użytkownika
będą odpowiedzialne za wysyłanie asynchronicznych żądań HTTP. Możesz
przykładowo podjąć decyzję, że zdarzenie onMouseOver wybranego obrazka
będzie skutkować wysłaniem żądania do serwera i pobraniem informacji na
temat tegoż obrazu. Innym przykładem może być zdarzenie onClick przycisku,
które generować będzie żądanie serwera pobierające informacje na temat tego,
jak wypełnić pola formularza.

W rozdziale 4., „Programowanie po stronie klienta przy użyciu JavaScript”,
przekonałeś się, jak JavaScript może być wykorzystany do wykonania instruk-
cji połączonych z takimi zdarzeniami, poprzez wykorzystanie procedur obsługi
zdarzeń. W swojej aplikacji Ajax metody takie odpowiedzialne będą za zapo-
czątkowanie asynchronicznych żądań HTTP poprzez wykorzystanie obiektu
XMLHTTPRequest.

Mając gotowe żądania, musisz napisać procedury monitorujące postęp tych żądań,
reagujące na otrzymanie sygnału z serwera, że żądanie zostało pomyślnie za-
kończone.

W końcu, po otrzymaniu powiadomienia, że serwer zakończył swoje zadania,
potrzebujesz procedury pobierającej zwrócone informacje z serwera, aby za-
stosować je w aplikacji. Możesz przykładowo zechcieć wykorzystać nowo
zwrócone dane do zmiany zawartości tekstu strony, wypełnienia pól formularza
lub otwarcia wyskakującego okienka z informacją.
94                               Część II ¨ Wprowadzenie do technologii Ajax


Rysunek 7.5 prezentuje diagram przepływu dla tego procesu.




Rysunek 7.5. Diagram prezentujący współpracę komponentów aplikacji Ajax

W rozdziale 11., „Nasza pierwsza aplikacja Ajax”, wykorzystamy świeżo nabytą
wiedzę do zbudowania kompletnej aplikacji Ajax.



Podsumowanie
W rozdziale tym opisaliśmy ułomności tradycyjnego interfejsu internetowego,
wskazując poszczególne problemy, które chcemy rozwiązać. Zaprezentowaliśmy
różne bloki budulcowe aplikacji Ajax oraz omówiliśmy, jak one współpracują.

W następnych rozdziałach części II przyjrzymy się tym komponentom dokładniej,
wykorzystując je do zbudowania kompletnej aplikacji Ajax.

More Related Content

What's hot

Po prostu JavaScript i Ajax. Wydanie VI
Po prostu JavaScript i Ajax. Wydanie VIPo prostu JavaScript i Ajax. Wydanie VI
Po prostu JavaScript i Ajax. Wydanie VIWydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startPHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startWydawnictwo Helion
 
JavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanieJavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanieWydawnictwo Helion
 
Ajax. Wzorce i najlepsze rozwiązania
Ajax. Wzorce i najlepsze rozwiązaniaAjax. Wzorce i najlepsze rozwiązania
Ajax. Wzorce i najlepsze rozwiązaniaWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIWydawnictwo Helion
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIWydawnictwo Helion
 
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznikAdobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznikWydawnictwo Helion
 
JavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanieJavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanieWydawnictwo Helion
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyWydawnictwo Helion
 
XHTML i CSS. Dostępne witryny internetowe
XHTML i CSS. Dostępne witryny internetoweXHTML i CSS. Dostępne witryny internetowe
XHTML i CSS. Dostępne witryny internetoweWydawnictwo Helion
 
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyTworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIPHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIWydawnictwo Helion
 
Tworzenie stron WWW. Nieoficjalny podręcznik
Tworzenie stron WWW. Nieoficjalny podręcznikTworzenie stron WWW. Nieoficjalny podręcznik
Tworzenie stron WWW. Nieoficjalny podręcznikWydawnictwo Helion
 

What's hot (20)

Po prostu JavaScript i Ajax. Wydanie VI
Po prostu JavaScript i Ajax. Wydanie VIPo prostu JavaScript i Ajax. Wydanie VI
Po prostu JavaScript i Ajax. Wydanie VI
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startPHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki start
 
JavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanieJavaScript. Zaawansowane programowanie
JavaScript. Zaawansowane programowanie
 
Ajax. Wzorce i najlepsze rozwiązania
Ajax. Wzorce i najlepsze rozwiązaniaAjax. Wzorce i najlepsze rozwiązania
Ajax. Wzorce i najlepsze rozwiązania
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
 
Dreamweaver MX 2004
Dreamweaver MX 2004Dreamweaver MX 2004
Dreamweaver MX 2004
 
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznikAdobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
 
JavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanieJavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanie
 
JavaScript i DHTML. Receptury
JavaScript i DHTML. RecepturyJavaScript i DHTML. Receptury
JavaScript i DHTML. Receptury
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedyczny
 
XHTML i CSS. Dostępne witryny internetowe
XHTML i CSS. Dostępne witryny internetoweXHTML i CSS. Dostępne witryny internetowe
XHTML i CSS. Dostępne witryny internetowe
 
ActionScript 2.0. Od podstaw
ActionScript 2.0. Od podstawActionScript 2.0. Od podstaw
ActionScript 2.0. Od podstaw
 
HTML i XHTML dla każdego
HTML i XHTML dla każdegoHTML i XHTML dla każdego
HTML i XHTML dla każdego
 
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyTworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
 
PHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIPHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie III
 
HTML w 10 prostych krokach
HTML w 10 prostych krokachHTML w 10 prostych krokach
HTML w 10 prostych krokach
 
JavaScript dla każdego
JavaScript dla każdegoJavaScript dla każdego
JavaScript dla każdego
 
Dreamweaver MX
Dreamweaver MXDreamweaver MX
Dreamweaver MX
 
Tworzenie stron WWW. Nieoficjalny podręcznik
Tworzenie stron WWW. Nieoficjalny podręcznikTworzenie stron WWW. Nieoficjalny podręcznik
Tworzenie stron WWW. Nieoficjalny podręcznik
 

Viewers also liked

PHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowyPHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowyWydawnictwo Helion
 
Praktyczny kurs Java. Wydanie II
Praktyczny kurs Java. Wydanie IIPraktyczny kurs Java. Wydanie II
Praktyczny kurs Java. Wydanie IIWydawnictwo Helion
 
Magia w działaniu. Sesje NLP Richarda Bandlera
Magia w działaniu. Sesje NLP Richarda BandleraMagia w działaniu. Sesje NLP Richarda Bandlera
Magia w działaniu. Sesje NLP Richarda BandleraWydawnictwo Helion
 
Montaż komputera PC. Ilustrowany przewodnik
Montaż komputera PC. Ilustrowany przewodnikMontaż komputera PC. Ilustrowany przewodnik
Montaż komputera PC. Ilustrowany przewodnikWydawnictwo Helion
 
Fotografia cyfrowa. Kurs. Wydanie II
Fotografia cyfrowa. Kurs. Wydanie IIFotografia cyfrowa. Kurs. Wydanie II
Fotografia cyfrowa. Kurs. Wydanie IIWydawnictwo Helion
 
Linux dla programistów i użytkowników
Linux dla programistów i użytkownikówLinux dla programistów i użytkowników
Linux dla programistów i użytkownikówWydawnictwo Helion
 
Tworzenie stron WWW. Ilustrowany przewodnik
Tworzenie stron WWW. Ilustrowany przewodnikTworzenie stron WWW. Ilustrowany przewodnik
Tworzenie stron WWW. Ilustrowany przewodnikWydawnictwo Helion
 
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać niąCMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać niąWydawnictwo Helion
 

Viewers also liked (13)

PHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowyPHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowy
 
Praktyczny kurs Java. Wydanie II
Praktyczny kurs Java. Wydanie IIPraktyczny kurs Java. Wydanie II
Praktyczny kurs Java. Wydanie II
 
Visual Basic 2005. Almanach
Visual Basic 2005. AlmanachVisual Basic 2005. Almanach
Visual Basic 2005. Almanach
 
Magia w działaniu. Sesje NLP Richarda Bandlera
Magia w działaniu. Sesje NLP Richarda BandleraMagia w działaniu. Sesje NLP Richarda Bandlera
Magia w działaniu. Sesje NLP Richarda Bandlera
 
SQL Server 2005
SQL Server 2005SQL Server 2005
SQL Server 2005
 
Sekrety RSS
Sekrety RSSSekrety RSS
Sekrety RSS
 
Montaż komputera PC. Ilustrowany przewodnik
Montaż komputera PC. Ilustrowany przewodnikMontaż komputera PC. Ilustrowany przewodnik
Montaż komputera PC. Ilustrowany przewodnik
 
Fotografia cyfrowa. Kurs. Wydanie II
Fotografia cyfrowa. Kurs. Wydanie IIFotografia cyfrowa. Kurs. Wydanie II
Fotografia cyfrowa. Kurs. Wydanie II
 
ASP.NET 2.0. Księga eksperta
ASP.NET 2.0. Księga ekspertaASP.NET 2.0. Księga eksperta
ASP.NET 2.0. Księga eksperta
 
Linux dla programistów i użytkowników
Linux dla programistów i użytkownikówLinux dla programistów i użytkowników
Linux dla programistów i użytkowników
 
Internet. Kurs. Wydanie II
Internet. Kurs. Wydanie IIInternet. Kurs. Wydanie II
Internet. Kurs. Wydanie II
 
Tworzenie stron WWW. Ilustrowany przewodnik
Tworzenie stron WWW. Ilustrowany przewodnikTworzenie stron WWW. Ilustrowany przewodnik
Tworzenie stron WWW. Ilustrowany przewodnik
 
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać niąCMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
 

Similar to AJAX w mgnieniu oka

AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychAJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychWydawnictwo Helion
 
CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C
CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3CCSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C
CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3CWydawnictwo Helion
 
Java. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalistyJava. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalistyWydawnictwo Helion
 
Tworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie IITworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie IIWydawnictwo Helion
 
Serwisy internetowe. Programowanie
Serwisy internetowe. ProgramowanieSerwisy internetowe. Programowanie
Serwisy internetowe. ProgramowanieWydawnictwo Helion
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPWydawnictwo Helion
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweWydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIWydawnictwo Helion
 
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWWHTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWWWydawnictwo Helion
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowaneWydawnictwo Helion
 
Java w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaJava w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawPHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawWydawnictwo Helion
 
Zwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychZwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychWydawnictwo Helion
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaWydawnictwo Helion
 
Flash MX 2004 ActionScript. Ćwiczenia praktyczne
Flash MX 2004 ActionScript. Ćwiczenia praktyczneFlash MX 2004 ActionScript. Ćwiczenia praktyczne
Flash MX 2004 ActionScript. Ćwiczenia praktyczneWydawnictwo Helion
 

Similar to AJAX w mgnieniu oka (18)

Ajax w akcji
Ajax w akcjiAjax w akcji
Ajax w akcji
 
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychAJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
 
CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C
CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3CCSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C
CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C
 
Java. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalistyJava. Usługi WWW. Vademecum profesjonalisty
Java. Usługi WWW. Vademecum profesjonalisty
 
Tworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie IITworzenie stron WWW w praktyce. Wydanie II
Tworzenie stron WWW w praktyce. Wydanie II
 
Serwisy internetowe. Programowanie
Serwisy internetowe. ProgramowanieSerwisy internetowe. Programowanie
Serwisy internetowe. Programowanie
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetowe
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
 
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWWHTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowane
 
Java w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaJava w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga eksperta
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawPHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstaw
 
Zwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychZwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowych
 
Flash i PHP5. Podstawy
Flash i PHP5. PodstawyFlash i PHP5. Podstawy
Flash i PHP5. Podstawy
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
 
Flash MX 2004 ActionScript. Ćwiczenia praktyczne
Flash MX 2004 ActionScript. Ćwiczenia praktyczneFlash MX 2004 ActionScript. Ćwiczenia praktyczne
Flash MX 2004 ActionScript. Ćwiczenia praktyczne
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

AJAX w mgnieniu oka

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREœCI AJAX w mgnieniu oka KATALOG KSI¥¯EK Autor: Phil Ballard T³umaczenie: Jacek Lempart, Magdalena Faszczewska KATALOG ONLINE ISBN: 83-246-0662-9 Tytu³ orygina³u: Teach Yourself AJAX in 10 Minutes ZAMÓW DRUKOWANY KATALOG Format: A5, stron: 256 TWÓJ KOSZYK Opanuj technologiê, która zrewolucjonizowa³a sposób obs³ugi aplikacji internetowych • Poznaj podstawy tworzenia witryn WWW DODAJ DO KOSZYKA • Stwórz aplikacje w technologii AJAX • Wykorzystaj dane w formacie XML CENNIK I INFORMACJE AJAX, bêd¹cy po³¹czeniem JavaScriptu, jêzyka XML i arkuszy stylów, to jedna z technologii, które wprowadzi³y ostatnio sporo zamieszania w œrodowisku projektantów witryn i aplikacji WWW. Jej zastosowanie zdecydowanie upraszcza i przyspiesza ZAMÓW INFORMACJE korzystanie z programów dostêpnych przez przegl¹darkê WWW. AJAX sprawia, O NOWOœCIACH ¿e zawartoœæ strony nie musi byæ prze³adowywana po ka¿dej akcji u¿ytkownika. Witryna WWW przygotowana z wykorzystaniem technologii AJAX przypomina ZAMÓW CENNIK tradycyjn¹ aplikacjê, komunikacja z serwerem nie przeszkadza w korzystaniu z niej, a dynamiczne zmiany elementów strony przebiegaj¹ znacznie szybciej. CZYTELNIA Ksi¹¿ka „AJAX w mgnieniu oka” to wprowadzenie do tematyki projektowania witryn i aplikacji WWW w technologii AJAX. Czytaj¹c j¹, opanujesz podstawy stosowania FRAGMENTY KSI¥¯EK ONLINE AJAX-a we w³asnych projektach. Poznasz technologie przetwarzania danych ze stron WWW po stronie przegl¹darki i serwera oraz dowiesz siê, czym jest obiektowy model dokumentu. Nauczysz siê korzystania z obiektów JavaScriptu, jêzyka XML i protoko³u SOAP. Stworzysz w³asne aplikacje w technologii AJAX i dowiesz siê, jak unikaæ najczêœciej pope³nianych b³êdów. • Podstawy jêzyka HTML • Zasada dzia³ania protoko³u HTTP • JavaScript i PHP • Obiektowy model dokumentu (DOM) • Struktura aplikacji AJAX • Obiekty JavaScriptu • Zwracanie danych w postaci tekstu i plików XML Wydawnictwo Helion • Technologia AHAH ul. Koœciuszki 1c • Us³ugi sieciowe i protokó³ SOAP 44-100 Gliwice tel. 032 230 98 63 • Korzystanie z biblioteki Rico e-mail: helion@helion.pl Zacznij tworzyæ nowoczesne witryny
  • 2. O autorze .....................................................................9 Wprowadzenie ............................................................11 O książce ................................................................................... 11 Czym jest Ajax? ........................................................................ 12 Dla kogo przeznaczona jest ta książka ..................................... 13 Czego potrzebuję, aby skorzystać z tej książki? ....................... 13 Konwencje użyte w książce ...................................................... 14 Część I Powtórka z technologii internetowych ..........15 Rozdział 1. Anatomia witryny internetowej ....................................17 Krótka historia sieci Internet ..................................................... 17 Działanie sieci Internet ............................................................. 18 Podsumowanie .......................................................................... 24 Rozdział 2. Pisanie stron internetowych w języku HTML ................25 Wprowadzenie do HTML ......................................................... 25 Elementy strony HTML ............................................................ 28 Bardziej zaawansowana strona HTML ..................................... 33 Niektóre użyteczne znaczniki HTML ....................................... 35 Kaskadowe Arkusze Stylów (CSS) w dwie minuty ................. 36 Podsumowanie .......................................................................... 37 Rozdział 3. Wysyłanie żądań przy użyciu protokołu HTTP ...............39 Wprowadzenie do HTTP .......................................................... 39 Żądanie i odpowiedź HTTP ...................................................... 40 Formularze HTML .................................................................... 43 Podsumowanie .......................................................................... 46
  • 3. 6 Ajax w mgnieniu oka Rozdział 4. Programowanie po stronie klienta przy użyciu JavaScript .. 47 O języku JavaScript ...................................................................47 Na samym dnie ..........................................................................49 Manipulacja danymi w JavaScript ............................................60 Podsumowanie ..........................................................................63 Rozdział 5. Programowanie po stronie serwera przy użyciu PHP .....65 Wprowadzenie do PHP .............................................................65 Osadzanie PHP w stronach HTML ...........................................66 Zmienne w PHP ........................................................................68 Kontrola przebiegu programu ...................................................70 Podsumowanie ..........................................................................72 Rozdział 6. Krótkie wprowadzenie do XML ....................................73 Wprowadzenie do XML ............................................................73 Podstawy XML .........................................................................74 JavaScript i XML ......................................................................78 Obiektowy model dokumentu (DOM) ......................................79 Podsumowanie ..........................................................................81 Część II Wprowadzenie do technologii Ajax ............... 83 Rozdział 7. Anatomia aplikacji Ajax ..............................................85 Technika Ajax jest potrzebna ....................................................85 Wprowadzenie do Ajax .............................................................88 Części składowe Ajax ...............................................................90 Złożenie wszystkiego w jedną całość .......................................93 Podsumowanie ..........................................................................94 Rozdział 8. Obiekt XMLHTTPRequest ...........................................95 Więcej o obiektach JavaScript ..................................................95 Wprowadzenie do XMLHTTPRequest .....................................97 Tworzenie obiektu XMLHTTPRequest ....................................98 Podsumowanie ........................................................................105 Rozdział 9. Komunikacja z serwerem ..........................................107 Wysyłanie żądań do serwera ...................................................107 Monitorowanie stanu serwera .................................................112 Funkcja zwrotna ......................................................................114 Podsumowanie ........................................................................116 Rozdział 10. Używanie zwróconych danych ...................................117 Właściwości responseText oraz responseXML ......................117 Kolejna przydatna właściwość JavaScript DOM ....................121 Parsowanie responseXML ......................................................122
  • 4. Spis treści 7 Zapewnienie obsługi użytkownika ......................................... 123 Podsumowanie ........................................................................ 125 Rozdział 11. Nasza pierwsza aplikacja Ajax ..................................127 Budowanie aplikacji Ajax ....................................................... 127 Dokument HTML ................................................................... 128 Dodanie kodu JavaScript ........................................................ 129 Złożenie wszystkiego w jedną całość ..................................... 133 Podsumowanie ........................................................................ 136 Część III Bardziej zaawansowane technologie Ajax .... 137 Rozdział 12. Zwracanie danych w postaci tekstu .........................139 Więcej korzyści z właściwości responseText ......................... 139 Podsumowanie ........................................................................ 146 Rozdział 13. AHAH — Asynchroniczny HTML i HTTP .....................147 Wprowadzenie do AHAH ....................................................... 147 Utworzenie małej biblioteki dla AHAH ................................. 149 Wykorzystanie myAHAHlib.js ............................................... 151 Podsumowanie ........................................................................ 156 Rozdział 14. Zwracanie danych w postaci XML ............................157 „x” w Ajax .............................................................................. 157 Własność responseXML ......................................................... 158 Projekt — czytnik nagłówków RSS ....................................... 162 Podsumowanie ........................................................................ 170 Rozdział 15. Usługi sieciowe i protokół REST ...............................171 Wprowadzenie do usług sieciowych ....................................... 171 Protokół REST ........................................................................ 172 Wykorzystanie protokołu REST w praktyce .......................... 174 REST i AJAX ......................................................................... 178 Podsumowanie ........................................................................ 179 Rozdział 16. Usługi sieciowe korzystające z protokołu SOAP .........181 Poznajemy protokół SOAP (ang. Simple Object Access Protocol) .................................. 181 Protokół SOAP ........................................................................ 183 Wykorzystywanie modelu Ajax i protokołu SOAP ................ 186 Ponowne spojrzenie na protokoły SOAP i REST ................... 187 Podsumowanie ........................................................................ 188
  • 5. 8 Ajax w mgnieniu oka Rozdział 17. Biblioteka języka JavaScript dla modelu Ajax ............189 Biblioteka modelu Ajax ..........................................................189 Przegląd myAHAHlib.js .........................................................190 Implementacja naszej biblioteki ..............................................191 Korzystanie z biblioteki ..........................................................195 Poszerzanie biblioteki .............................................................198 Podsumowanie ........................................................................198 Rozdział 18. Pułapki Ajax ............................................................199 Typowe błędy Ajax .................................................................199 Przycisk Wstecz ......................................................................199 Ulubione i hiperłącza ..............................................................200 Informowanie użytkownika o zdarzeniu .................................201 Radzenie sobie z brakiem obsługi Ajax ..................................201 Roboty indeksujące w wyszukiwarkach .................................202 Aktywne elementy strony .......................................................203 Nie używaj technologii Ajax, gdy jest to nieodpowiednie .....204 Bezpieczeństwo .......................................................................204 Testowy kod na różnych platformach .....................................205 Ajax nie naprawi złego projektu .............................................205 Niektóre programistyczne pułapki ..........................................206 Podsumowanie ........................................................................207 Część IV Komercyjne oraz otwarte zasoby technologii Ajax ........................................ 209 Rozdział 19. Zestaw narzędzi prototype.js ....................................211 Wprowadzenie do prototype.js ................................................211 Obudowywanie obiektu XMLHTTPRequest ..........................214 Przykładowy projekt — czytnik cen akcji ..............................217 Podsumowanie ........................................................................219 Rozdział 20. Zastosowanie Rico ..................................................221 Wstęp do Rico .........................................................................221 Inne narzędzia Rico do tworzenia interfejsu ...........................226 Podsumowanie ........................................................................231 Rozdział 21. Wykorzystanie XOAD ................................................233 Wprowadzenie do XOAD .......................................................233 XOAD HTML .........................................................................237 Zaawansowane programowanie w XOAD .............................239 Podsumowanie ........................................................................240 Skorowidz ................................................................241
  • 6. Rozdział 7. W tym rozdziale zawarte są informacje o budowaniu poszczególnych bloków Ajax oraz o tym, jak one ze sobą współpracują tworząc architekturę aplikacji Ajax. W dalszych rozdziałach części II, „Wprowadzenie do Ajax”, zostaną do- kładniej przeanalizowane te komponenty, które ostatecznie składają się na działającą aplikację Ajax. Technika Ajax jest potrzebna W części I, „Przypomnienie technologii internetowych”, dokonaliśmy przeglądu głównych technologii, które umożliwiają budowę komponentów aplikacji Ajax. Posiadasz zatem przynajmniej podstawową wiedzę na temat JavaScript, PHP oraz XML, czyli wszystkiego, z czego będziemy korzystać w części II. Zanim przystąpimy do omawiania poszczególnych komponentów, przyjrzyjmy się dokładniej temu, czego oczekujemy od naszej aplikacji Ajax.
  • 7. 86 Część II ¨ Wprowadzenie do technologii Ajax Interakcje tradycyjne kontra Ajax klient-serwer W rozdziale 1., „Anatomia witryny internetowej”, został omówiony tradycyjny model interfejsu witryny internetowej. Kiedy pracujesz z taką witryną, po- szczególne strony zawierające tekst, obrazki, formularze do wprowadzania da- nych itd. prezentowane są raz w danej chwili. Każda strona musi zostać obsłu- żona z osobna przed przejściem do kolejnej. Przykładowo, możesz wypełnić formularz z danymi, wprowadzając je i popra- wiając tyle razy, ile zechcesz. Jednocześnie wiesz, że dane nie powędrują do serwera, dopóki formularz nie zostanie ostatecznie zatwierdzony. Rysunek 7.1 ilustruje ten rodzaj interakcji. Rysunek 7.1. Tradycyjne interakcje klient-serwer Po zatwierdzeniu formularza lub kliknięciu łącza nawigacyjnego musisz cze- kać, dopóki ekran przeglądarki jest odświeżany, by wyświetlić nową lub sko- rygowaną stronę, która została wygenerowana przez serwer. W miarę jak Twoje doświadczenie jako użytkownika Internetu się wzbogaca, korzystanie z takiego interfejsu staje się niemal drugą naturą. Uczysz się pew- nych praktycznych zachowań, które pozwalają unikać kłopotów, jak na przy- kład „nie naciskaj ponownie przycisku zatwierdzającego formularz” czy „nie naciskaj przycisku Wstecz po zatwierdzeniu formularza”. Niestety, interfejsy użytkownika zbudowane w oparciu o ten model posiadają kilka wad. Pierwsza to taka, że istnieje znaczące opóźnienie podczas wczyty- wania nowej lub skorygowanej strony. Następuje przerwanie tego, co użyt- kownicy postrzegają jako tak zwany przebieg aplikacji.
  • 8. Rozdział 7. ¨ Anatomia aplikacji Ajax 87 Co więcej, cała strona musi zostać wczytana przy każdej okazji, nawet jeśli większość jej zawartości jest identyczna z poprzednią stroną. Elementy wspól- ne dla wielu stron danej witryny internetowej, takie jak nagłówki, stopki czy sekcje nawigacyjne, mogą stanowić znaczną proporcję danych zawartych w stronie. Rysunek 7.2 ilustruje witrynę wyświetlającą strony przed zatwierdzeniem for- mularza i po nim, ukazując, jak wiele identycznej zawartości zostało wczytane ponownie oraz jak relatywnie mało zmieniła się zawartość strony. Rysunek 7.2. Wiele elementów strony jest niepotrzebnie ponownie wczytywana To niepotrzebne pobieranie danych marnuje pasmo i zwiększa opóźnienie we wczytywaniu każdej nowej strony. Pasmo odnosi się do pojemności kanałów komunikacyjnych prze- noszących informację. W Internecie pasmo jest zwykle mierzone w bps (ang. bits per second — bity na sekundę) lub wyższych mnożni- kach, takich jak Mbps (ang. milion bits per second — milion bitów na sekundę).
  • 9. 88 Część II ¨ Wprowadzenie do technologii Ajax Bogate doznania użytkownika Połączenie skutków problemów opisanych powyżej powoduje, że użytkownik posiada dużo gorszy interfejs użytkownika w sensie jego interaktywności w porównaniu do interfejsów oferowanych przez ogromną większość aplikacji biurkowych. W aplikacjach stacjonarnych oczekujesz, że wyświetlana zawartość programu pozostaje widoczna, a elementy interfejsu reagują na wydawane polecenia, podczas gdy proces przetwarzania wykonuje się po cichu w tle. Gdy na przy- kład piszę ten rozdział wykorzystując procesor tekstu, mogę zapisać dokument na dysku, przewinąć stronę w górę lub dół, zmienić krój czcionki i jej rozmiar bez potrzeby czekania przy każdej okazji, aż cały ekran zostanie odświeżony. Ajax pozwala dodać do interfejsu Twojej aplikacji internetowej funkcjonalność, która dotychczas bardziej powszechnie spotykana była w aplikacjach biurkowych. Wiąże się to często z określeniem bogatego doznania użytkownika (ang. rich user experience). Wprowadzenie do Ajax By wzbogacić doznania użytkownika, musisz dodać pewne możliwości do tra- dycyjnego podejścia do interfejsu aplikacji internetowych. Chcesz, aby strona Twojego użytkownika była interaktywna, odpowiadała na akcje użytkownika zmieniając zawartość i by była aktualizowana bez jakichkolwiek przerw na wczytywanie strony lub odświeżanie ekranu. Aby to osiągnąć, Ajax buduje dodatkową warstwę przetwarzania, pomiędzy stroną internetową a serwerem. Warstwa ta często określana jest mianem Modułu Ajax lub Osnowy Ajax. Przechwytuje żądania od użytkownika, a w tle obsługuje komunikację z serwe- rem — po cichu, dyskretnie i asynchronicznie. Rozumiemy przez to, że żądania i odpowiedzi serwera nie muszą być zbieżne z określoną akcją użytkownika, ale mogą mieć miejsce w dowolnym, wygodnym dla użytkownika czasie, by poprawić działanie aplikacji. Przeglądarka internetowa nie zamraża się teraz i nie oczekuje ukończenia przez serwer ostatniego żądania. Zamiast tego, po- zwala użytkownikowi na przewijanie ekranu strony, klikanie czy pisanie na bieżącej stronie.
  • 10. Rozdział 7. ¨ Anatomia aplikacji Ajax 89 Aktualizowanie elementów strony, tak by odpowiadały skorygowanym danym otrzymanym z serwera, jest również wykonywane przez Ajax. Dzieje się to dynamicznie podczas ciągłego korzystania ze strony. Rysunek 7.3 prezentuje, jak wyglądają te interakcje. Rysunek 7.3. Interakcje Ajax klient-serwer Prawdziwa aplikacja Ajax — Google Suggest Aby zobaczyć przykład aplikacji Ajax w akcji, spójrzmy na Google Suggest. Aplikacja ta rozszerza interfejs znajomej wyszukiwarki Google, oferując użyt- kownikowi sugestie dla odpowiednich terminów, w oparciu o to, co zostało w danym momencie wpisane. Za każdym naciśnięciem klawisza przez użytkownika warstwa Ajax aplikacji odpytuje serwer Google, czy istnieje odpowiednio podobna fraza; jeśli tak, to wyświetla zwrócone dane w liście rozwijanej. Wraz z każdą sugerowaną frazą listowana jest również liczba rezultatów, których spodziewałaby się wyszuki- warka dla poszukiwania przeprowadzonego dla tej frazy. W każdym momencie użytkownik ma możliwość wyboru jednej z tych sugestii zamiast kontynuowania pisania, a wyszukiwarka Google wykona przeszukiwanie dla wybranej frazy. Ponieważ serwer jest odpytywany przy każdym naciśnięciu klawisza, lista rozwijana jest dynamicznie aktualizowana, bez zbędnego czekania na odświe- żenie strony lub innych podobnych przerwań. Rysunek 7.4 pokazuje działający program. Możesz sam wypróbować tę aplika- cję, korzystając z hiperłącza strony domowej Google http://www.google.com/ webhp?complete=1&hl=en.
  • 11. 90 Część II ¨ Wprowadzenie do technologii Ajax Rysunek 7.4. Przykład aplikacji Ajax — Google Suggest A teraz zidentyfikujmy poszczególne komponenty takiej aplikacji Ajax oraz zobaczmy, jak one współpracują. Google zaprezentował również inne aplikacje Ajax, które możesz wy- próbować, jak na przykład witrynę internetową gmail, będącą serwisem poczty elektronicznej. Innym przykładem może też być Google Maps. Po szczegóły sięgnij pod adres: http://www.google.com. Części składowe Ajax Teraz przeanalizujmy poszczególne komponenty aplikacji Ajax. Obiekt XMLHTTPRequest Kiedy klikasz łącze lub zatwierdzasz formularz HTML, wysyłasz żądanie HTTP do serwera, który odpowiada wysyłając do Ciebie nową lub zmodyfikowaną stronę. Aby jednak Twoja aplikacja internetowa mogła pracować asynchronicznie,
  • 12. Rozdział 7. ¨ Anatomia aplikacji Ajax 91 musisz posiadać możliwość wysłania żądania HTTP do serwera bez powiąza- nia go z żądaniem wyświetlenia nowej strony. Możesz to osiągnąć dzięki obiektowi XMLHTTPRequest. Ten obiekt JavaScript potrafi utworzyć połączenie z serwerem, a następnie wysyłać do niego żądania HTTP bez potrzeby powiązania ich z wczytywaniem strony. W następnych rozdziałach dowiesz się, jak utworzyć instancję tego obiektu oraz jak jego właściwości i metody mogą być wykorzystane przez procedury JavaScript, zawarte w stronie internetowej, aby ustanowić asynchroniczne po- łączenie z serwerem. Ze względów bezpieczeństwa obiekt XMLHTTPRequest może gene- ralnie łączyć się z adresami URL tej samej domeny, co wywoły- wana strona, oraz nie może bezpośrednio łączyć się ze zdalnym serwerem. Rozdział 8., „Obiekt XMLHTTPRequest”, omawia, jak utworzyć instancję obiektu XMLHTTPRequest oraz opisuje pokrótce właściwości i metody obiektu. Rozmawianie z serwerem W tradycyjnym modelu strony internetowej, kiedy wysyłasz żądanie poprzez hiperłącze lub zatwierdzenie strony, serwer przyjmuje to żądanie, wykonuje wszelkie wymagane czynności po stronie serwerowej, by wreszcie wysłać do Ciebie nową stronę z zawartością odpowiadającą akcji, jaką wykonałeś. Gdy to przetwarzanie ma miejsce, interfejs użytkownika jest skutecznie za- mrożony. Zapewne wiesz już, kiedy serwer kończy swoje zadanie — kiedy w przeglądarce pojawia się nowa lub zmodyfikowana strona. Jednakże w przypadku asynchronicznych żądań serwera komunikacja odbywa się w tle, a ich ukończenie niekoniecznie musi być powiązane z odświeżaniem strony czy wczytywaniem nowej. Dlatego też musisz ustalić, w jakim stopniu serwer obsłużył dane żądanie. Obiekt XMLHTTPRequest posiada wygodną właściwość, która raportuje postęp obsługi żądania serwera. Możesz sprawdzić tę właściwość, używając procedur JavaScript celem określenia momentu, w którym serwer zakończy prace, a wyniki jego działania są dostępne do wykorzystania.
  • 13. 92 Część II ¨ Wprowadzenie do technologii Ajax Z tego powodu Twój kod Ajax musi zawierać procedurę monitorującą status żądań serwera i odpowiednio się zachowywać. Przyjrzymy się temu zagadnie- niu bliżej w rozdziale 9., „Rozmawianie z serwerem”. Co dzieje się na serwerze? Dotychczas, gdy interesowaliśmy się skryptami serwerowymi, komunikacja za pomocą obiektu XMLHTTPRequest była po prostu innym żądaniem HTTP. Apli- kacje Ajax niewiele „przejmują się” tym, jakie języki programowania lub śro- dowisko jest obecne na serwerze. Przyjmując, że strona kliencka warstwy Ajax otrzymuje na czas poprawnie sformatowane odpowiedzi HTTP z serwera, wszyst- ko będzie pracować poprawnie. Możliwe jest napisanie prostej aplikacji Ajax w całości bez skryptów serwe- rowych, po prostu wywołując obiekt XMLHTTPRequest ze statycznym zasobem serwera, jak na przykład dokumentem XML lub plikiem tekstowym. Aplikacje Ajax mogą wywoływać rozmaite inne serwerowe zasoby, takie jak na przykład usługi sieciowe (ang. web services). W dalszej części niniejszej książ- ki zapoznamy się z pewnymi przykładami wywoływania usług sieciowych, ko- rzystając z takich protokołów jak SOAP czy REST. W niniejszej książce będziemy korzystać z popularnego serwerowe- go języka skryptowego PHP w procedurach serwerowych. Jeśli jednak czujesz się bardziej komfortowo używając takich języków jak ASP, JSP czy innych, nic nie stoi na przeszkodzie, abyś z nich korzystał. Obsługa odpowiedzi serwera Kiedy jesteś informowany o tym, że asynchroniczne żądanie zostało z powo- dzeniem wykonane, możesz wykorzystać informacje zwrócone przez serwer. Ajax pozwala, aby zwracane dane mogły mieć różną postać, w tym na przy- kład tekst ASCII oraz dane XML. W zależności od natury aplikacji, informacje te mogą zostać następnie skon- wertowane do innej postaci, wyświetlone lub przetworzone w pewien założony sposób w obrębie bieżącej strony. Skupimy się na tych kwestiach w rozdziale 10., „Używanie zwróconych danych”.
  • 14. Rozdział 7. ¨ Anatomia aplikacji Ajax 93 Inne zadania zarządzające Od aplikacji Ajax wymagane będzie również wykonanie wielu innych zadań. Przykładem może być wykrywanie błędów oraz ich odpowiednia obsługa, czy też informowanie użytkownika o stanie przesłanych żądań Ajax. W kolejnych rozdziałach tej książki zostanie zaprezentowanych wiele przykładów. Złożenie wszystkiego w jedną całość Przypuśćmy, że chcesz zaprojektować nową aplikację Ajax lub zaktualizować odziedziczoną aplikację internetową, tak by obsługiwała techniki Ajax. Jak się możesz z tym uporać? Po pierwsze musisz zdecydować, jakie zdarzenia strony i akcje użytkownika będą odpowiedzialne za wysyłanie asynchronicznych żądań HTTP. Możesz przykładowo podjąć decyzję, że zdarzenie onMouseOver wybranego obrazka będzie skutkować wysłaniem żądania do serwera i pobraniem informacji na temat tegoż obrazu. Innym przykładem może być zdarzenie onClick przycisku, które generować będzie żądanie serwera pobierające informacje na temat tego, jak wypełnić pola formularza. W rozdziale 4., „Programowanie po stronie klienta przy użyciu JavaScript”, przekonałeś się, jak JavaScript może być wykorzystany do wykonania instruk- cji połączonych z takimi zdarzeniami, poprzez wykorzystanie procedur obsługi zdarzeń. W swojej aplikacji Ajax metody takie odpowiedzialne będą za zapo- czątkowanie asynchronicznych żądań HTTP poprzez wykorzystanie obiektu XMLHTTPRequest. Mając gotowe żądania, musisz napisać procedury monitorujące postęp tych żądań, reagujące na otrzymanie sygnału z serwera, że żądanie zostało pomyślnie za- kończone. W końcu, po otrzymaniu powiadomienia, że serwer zakończył swoje zadania, potrzebujesz procedury pobierającej zwrócone informacje z serwera, aby za- stosować je w aplikacji. Możesz przykładowo zechcieć wykorzystać nowo zwrócone dane do zmiany zawartości tekstu strony, wypełnienia pól formularza lub otwarcia wyskakującego okienka z informacją.
  • 15. 94 Część II ¨ Wprowadzenie do technologii Ajax Rysunek 7.5 prezentuje diagram przepływu dla tego procesu. Rysunek 7.5. Diagram prezentujący współpracę komponentów aplikacji Ajax W rozdziale 11., „Nasza pierwsza aplikacja Ajax”, wykorzystamy świeżo nabytą wiedzę do zbudowania kompletnej aplikacji Ajax. Podsumowanie W rozdziale tym opisaliśmy ułomności tradycyjnego interfejsu internetowego, wskazując poszczególne problemy, które chcemy rozwiązać. Zaprezentowaliśmy różne bloki budulcowe aplikacji Ajax oraz omówiliśmy, jak one współpracują. W następnych rozdziałach części II przyjrzymy się tym komponentom dokładniej, wykorzystując je do zbudowania kompletnej aplikacji Ajax.