Blog Leszczynowa

AJAX

AJAX Kurs od podstaw - interaktywne aplikacje WWW

AJAX Kurs od podstaw - interaktywne aplikacje WWW W dobie aplikacji Web 2.0 technologia Ajax robi zawrotną karierę. Pierwszy odcinek kursu Ajaksa wprowadzi w świat interaktywnych aplikacji WWW. Omawiany przykład prezentuje wszystkie cechy aplikacji ajaksowych: interaktywną wymianę treści i wyglądu przy użyciu modelu DOM, modyfikację fragmentu strony WWW bez przeładowywania całego dokumentu, asynchroniczną komunikację z serwerem prowadzoną w tle oraz operowanie danymi w formacie XML.

Włodzimierz Gajda

Ajax na stronach WWW oraz jako asynchroniczny JavaScript i XML

Ajax na stronach WWW

Strona WWW stosująca technologię Ajax zawiera elementy dynamiczne. Pod wpływem interakcji użytkownika wygląd i treść witryny ulegają zmianie. Zasadniczą cechą wyróżniającą witryny ajaksowe jest brak przeładowania całej strony WWW. Zachowanie takie możemy zaobserwować m.in. w serwisie flickr (http://flickr.com).

Rysunek po lewej prezentuje zdjęcie zatytułowane Tatry... I LOVE YOU!!!. Po prawej stronie znajdują się kontrolki umożliwiające przeglądanie kategorii. Każda kategoria może zostać zwinięta (służy do tego ikona -) lub rozwinięta (ikona +). Rysunek po prawej prezentuje tą samą witrynę po zwinięciu pierwszej kategorii.

AJAX Kurs od podstaw - interaktywne aplikacje WWW AJAX Kurs od podstaw - interaktywne aplikacje WWW

Dynamicznym fragmentem strony przedstawionej na powyższych rysunkach jest zaznaczona na czerwono kontrolka wyświetlająca miniaturowe fotografie. Element ten jest widoczny (rozwinięty) lub ukryty (zwinięty ).

Inter akcja użytkownika polega na kliknięciu ikony + lub -. W odróżnieniu od zwykłych hiperłączy, strona nie zostaje przeładowana. Zmianie ulega tylko fragment witryny.

Zawartość rozwinięte go elementu pochodzi z serwer a (są to miniaturki innych fotografii należących do danej kategorii). Zatem po rozwinięciu elementu przeglądarka w tle pobiera z serwera dane i umieszcza je w odpowiednim obszar ze strony WWW.

Ajax, czyli asynchroniczny JavaScript i XML

Strona wykorzystująca Ajax jest zwykłym dokumentem HTML /CSS zawierającym skrypty JavaScript. Ajax nie w prowadza żadnych nowych języków. Interakcje użytkownik a (np. kliknięcie ikony, wskazanie elementu kursorem myszki) jest realizowane poprzez zdarzenia zdefiniowane w specyfikacji HTML (m.in. onclick, onmouseover, onmouseout). Może to być kliknięcie elementu span czy wskazanie kursorem myszki obrazka img. Cała dynamiczna interakcja jest oprogramowana w języku JavaScript.

Wysyłanie w tle zapytań HTTP do serwera o dodatkowe dane odbywa się przy użyciu obiektu JavaScript o nazwie XMLHttpRequest. Po odebraniu danych z serwera modyfikujemy stronę WWW, wykorzystując do tego model DOM. Innymi słowy w skrypcie JavaScript wywołujemy metody (np. getElementById(), getElementsByTagName() ), by uzyskać dostęp do poszczególnych elementów HTML strony, która jest właśnie wyświetlona przez przeglądarkę. Różnymi właściwościami (np. innerHTML, style) modyfikujemy treść ( np. w stawiamy miniaturk i pobrane w tle z serwera ) i wygląd poszczególnych elementów HTML ( np. rozwijamy/zwijamy element div ).

Podsumowując, tworzenie ajaksowych stron WWW wymaga znajomości:

  • języków HTML /CSS, w szczególności zdarzeń HTML,
  • języka JavaScript,
  • obiektu XMLHttpRequest (jest to obiekt dostępny w JavaScript),
  • protokołu HTTP, w szczególności metod GET o raz POST,
  • języka XML ,
  • modelu DOM (czyli obiektów, ich metod oraz właściwości dostępnych w JavaScripcie, które pozwalają na modyfikowanie strony WWW wyświetlanej przez przeglądarkę).

Języki przetwarzania po stronie serwera (takie jak PHP, ASP czy JSP) nie są konieczne. W pierwszym odcinku kursu wszystkie przykłady będą napisane wyłącz nie w językach XHTML, CSS, JavaScript, XML, bez przetwarzania po stronie serwera.

Rozwiązaniami podobnymi do Ajaksa są AHAH ( Asynchronous HTML and HTTP - asynchroniczny HT ML i HT TP) oraz AXAH (Asynchronous XHTML and HTTP - asynchroniczny XHTML i HTTP). Różnią się one od Ajaksa formatem danych. Obecnie, bez względu na format danych, rozwiązania stosujące asynchroniczną komunikację z serwerem WWW są określane terminem Ajax (nawet, jeśli nie stosują XML).

17 kwietnia 2008

Powiązane publikacje

Ciekawe patenty na AJAX-a

Ciekawe patenty na AJAX-a

AJAX Kurs od podstaw - jQuery

AJAX Kurs od podstaw - jQuery

AJAX Kurs od podstaw - wymiana fragmentu strony

AJAX Kurs od podstaw - wymiana fragmentu strony

AJAX Kurs od podstaw - wyszukiwarka

AJAX Kurs od podstaw - wyszukiwarka

 
AJAX Kurs od podstaw - interakcja AJAX - PHP

AJAX Kurs od podstaw - interakcja AJAX - PHP

Ajax. Zaawansowane programowanie

Ajax. Zaawansowane programowanie

Ajax w kilka minut

Ajax w kilka minut

80 sposobów na Ajax

80 sposobów na Ajax

 
Nie taki AJAX straszny!

Nie taki AJAX straszny!

AJAX, czyli aplikacje dla WWW

AJAX, czyli aplikacje dla WWW

 
Skomentuj
ten artykuł

Komentarzy: 5

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum czwartek, 4.06.2009 20:14Bartek

Mam uwagi do strony 1 i 2
Caly ten skrypt dziala pod IE ale juz w FF, Opera, Google Chrome nie działa ;/

Przejdż do tego postu na forum sobota, 21.03.2009 12:03om77

tylko bez tych ukośników smile.gif

Przejdż do tego postu na forum sobota, 21.03.2009 12:02om77

jest jeszcze mały błąd w czwartym bloku od góry w wierszu 4.
jest: ... r.responseXML.getElementsByTagName(\\\'tekst\\\') .[0].childNodes[0].nodeValue;
a powinno być:
r.responseXML.getElementsByTagName(\\\'tekst\\\')[0].childNodes[0].nodeValue;
na 6 stronie

Przejdż do tego postu na forum wtorek, 1.07.2008 14:37Łukasz Cymerman

Mam oczywiście na myśli 6. stronę kursu. Poza tym - bardzo przystępnie napisany kurs! Dzięki smile.gif

Przejdż do tego postu na forum wtorek, 1.07.2008 14:34Łukasz Cymerman

W treści funkcji getText w ostatnim zarysie index.htm jest błąd.
Jest:
r.onreadystatechange = responseAjaxprocessResponse
Powinno być:
r.onreadystatechange = processResponse
Podobny błąd jest w opisie tej funkcji (trzeci blok kodu od końca).
Pozdr!

Zobacz wszystkie komentarze »

Autor

Włodzimierz Gajda

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.