ajax. ćwiczenia full scan.pdf

(8662 KB) Pobierz
887665506.012.png
4
Ajax• Ćwiczenia
Rozdział 4.
AJAX i XML
105
Krótko o XML
105
Reprezentacja dokumentów XML
107
Odbieranie danych XML
110
Dynamiczne listy wyboru
120
AJAX, XML i PHP
126
Rozdział 5.
Równoległa obsługa wielu żądań
133
Problemy z równoległą obsługą żądań
133
Użycie kilku obiektów XMLHttpRequest
140
Wykorzystanie funkcji wewnętrznych
143
Rozdział 6.
Kiedy serwer odpowiada kodem
147
Serwer wysyła kod
147
Obiekty w standardzie JSON
157
4
AJAX i XML
Krótko o XML
Skrót AJAX oznacza Asynchronous Javascript and XML — z samej nazwy
wynika więc, że technika ta jest związana z językiem XML. Co prawda,
jak pokazały poprzednie rozdziały, stosowanie XML-a wcale nie jest
konieczne do tworzenia aplikacji AJAX-a, warto jednak wiedzieć, jak
wygląda współpraca między XML-em i AJAX-em oraz jak się tworzy,
pobiera i przetwarza tego typu dane. Takim właśnie zagadnieniom po-
święcony jest czwarty rozdział.
XML to EXtensible Markup Language , czyli rozszerzalny język znacz-
ników. Jest to rozwijany przez organizację W3C ( http://www.w3.org )
niezależny od platformy systemowej język opisu danych. Faktycznie
XML służy do wyprowadzania innych języków, tzw. aplikacji XML.
Pozwala na definiowanie struktury danych, struktury dokumentów,
zupełnie niezależnej od sposobu ich prezentacji, jak jest np. w HTML.
Nie ma w nim też narzuconego z góry zestawu znaczników. I to jest
jego największa siła. Dzięki tym cechom umożliwia łatwą wymianę
danych oraz bezproblemowe ich przetwarzanie.
Dokument XML składa się z nagłówka oraz zbioru znaczników defi-
niujących elementy dokumentu. Każdy element musi mieć znacznik
otwierający i zamykający, np.:
887665506.013.png 887665506.014.png 887665506.015.png 887665506.001.png 887665506.002.png 887665506.003.png 887665506.004.png 887665506.005.png 887665506.006.png 887665506.007.png 887665506.008.png
106
Ajax• Ćwiczenia
<element1>
dane
</element1>
chyba że jest elementem pustym (czyli niezawierającym danych). W tym
ostatnim przypadku znacznik będzie miał postać:
<znacznik />
W nagłówku należy natomiast określić wersję języka. W dalszych ćwi-
czeniach będziemy stosować nagłówek w postaci:
<?xml version="1.0" ?>
Elementy dokumentu XML mogą być zagnieżdżane (podobnie jak znacz-
niki HTML), np.:
<element1>
<element2>
dane
</element2>
</element1>
Mogą także posiadać atrybuty, choć w niniejszej publikacji nie bę-
dziemy ich stosować. Jak może wyglądać prosty dokument XML? Na
przykład następująco:
<?xml version="1.0" ?>
<dokument>
To jest pierwszy dokument!
</dokument>
Mamy tu znacznik otwierający <dokument> i zamykający </dokument> . Te
znaczniki definiują element XML o nazwie dokument , natomiast tekst
znajdujący się między nimi to zawartość tego elementu. Przy czym
<dokument> bynajmniej nie jest predefiniowanym elementem języka
— jest to nasz własny znacznik, który sobie wymyśliliśmy. Równie
dobrze można go nazwać np. napis :
<?xml version="1.0" ?>
<napis>
To jest pierwszy dokument!
</napis>
Te wiadomości wystarczą już do wykonania ćwiczeń znajdujących się
na kolejnych stronach.
107
Rozdział 4. • AJAX i XML
Reprezentacja dokumentów XML
W poprzednich rozdziałach zaprezentowano wiele ćwiczeń pokazują-
cych, w jaki sposób odbierać dane tekstowe za pomocą obiektu XMLHttp -
Request . Dane te były zarówno statyczne, jak i generowane dynamicz-
nie, jednak dostęp do nich zawsze był uzyskiwany przez odwołanie
się do właściwości responseText . Jeśli zajrzymy teraz do tabeli 1.1 z roz-
działu 1., znajdziemy w niej również właściwość responseXML . Właśnie
ona zawiera dane w formacie XML, o ile oczywiście w takiej formie
zostały przesłane z serwera. W rzeczywistości właściwość ta zawiera
obiekt posiadający właściwości pozwalające na dostęp do danych za-
wartych w pobranym dokumencie XML. Typowe właściwości zostały
przedstawione w tabeli 4.1.
Tabela 4.1. Właściwości pozwalające na dostęp do struktury dokumentu XML
Nazwa
Opis
attributes
Atrybuty węzła
Tablica węzłów potomnych
childNodes
Główny element dokumentu
documentElement
firstChild
Pierwszy węzeł potomny
Ostatni węzeł potomny
lastChild
localName
Lokalna nazwa węzła
Nazwa węzła
name
Kolejny węzeł sąsiadujący
nextSibling
nodeName
Nazwa węzła
Typ węzła
nodeType
Wartość węzła
nodeValue
previousSibling
Poprzedni węzeł sąsiadujący
Aby zrozumieć znacznie tych właściwości, trzeba wiedzieć, że doku-
ment XML w obiekcie wskazanym przez właściwość responseXML jest
traktowany jako struktura drzewiasta, w której poszczególne elementy
dokumentu są węzłami. Załóżmy, że mamy do dyspozycji dokument
XML w postaci:
887665506.009.png 887665506.010.png 887665506.011.png
 
Zgłoś jeśli naruszono regulamin