Praktyczne zastosowanie technologii AJAX do tworzenia stron WWW. Sylwia Binek, Agata Nawrocka, Marek Mędrek



Podobne dokumenty
Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

Bazy danych i strony WWW

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

REFERAT O PRACY DYPLOMOWEJ

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Wybrane działy Informatyki Stosowanej

9.5 Rozliczanie zaopatrzenia w przedmioty ortopedyczne i środki pomocnicze

Paweł Rajba,

Aplikacje WWW - laboratorium

Zaawansowane aplikacje internetowe

Pogadanka o czymś, co niektórzy nazywają AJAX

Aplikacje WWW - laboratorium

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

9.5 Rozliczanie zaopatrzenia w przedmioty ortopedyczne i środki pomocnicze

Przewodnik użytkownika (instrukcja) AutoMagicTest

Certyfikat niekwalifikowany zaufany Certum Silver. Instrukcja dla uŝytkowników Windows Vista. wersja 1.1 UNIZETO TECHNOLOGIES SA

REFERAT PRACY DYPLOMOWEJ

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Podstawy technologii WWW

KURIER XL BY CTI DLA SIÓDEMKA

Komunikator internetowy w C#

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Aby pobrać program FotoSender naleŝy na stronę lub i kliknąć na link Program do wysyłki zdjęć Internetem.

Projektowani Systemów Inf.

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Programowanie Komponentowe WebAPI

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Dokumentacja instalacji aktualizacji systemu GRANIT wydanej w postaci HotFix a

Pomoc dla systemu WordPress

Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

OfficeObjects e-forms

ZESTAW PLATINUM. - instrukcja pobrania i instalacji certyfikatu niekwalifikowanego wersja 1.2

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Przewodnik użytkownika (instrukcja) AutoMagicTest

Dostęp do poczty przez www czyli Kerio Webmail Poradnik

Opis modułu pl.id w programie Komornik SQL-VAT

Opis modułu pl.id w programie Komornik SQL-VAT

Podręcznik Integracji

PRZEWODNIK PO PRZEDMIOCIE

PHP: bloki kodu, tablice, obiekty i formularze

Aplikacje WWW Wprowadzenie

Instrukcja pobrania i instalacji. certyfikatu niekwalifikowanego na komputerze lub karcie kryptograficznej wersja 1.2

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

OPIS PRZEDMIOTU ZAMÓWIENIA

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Rys Rejestracja certyfikatu kwalifikowanego w programie Płatnik

Specyfikacja implementacyjna aplikacji serwerowej

Modele danych walidacja widoki zorientowane na model

Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

EXSO-CORE - specyfikacja

ActiveXperts SMS Messaging Server

Dokumentacja SMS przez FTP

INSTRUKCJA OBSŁUGI APLIKACJI HERMES sprawdzian i egzamin gimnazjalny. OKE Warszawa

1. Instalacja systemu Integra 7

Aplikacje internetowe - laboratorium

Wykład 5: PHP: praca z bazą danych MySQL

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007

Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki.

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Podstawy technologii WWW

Krok 2: Pierwsze uruchomienie

Autoryzacja zleceń z użyciem aplikacji Java Web Start "Pocztowy24Podpis"

Pobieranie komunikatów GIF

PHICS - Polish Harbours Information & Control System Dokumentacja użytkownika System weryfikacji autentyczności polskich dokumentów marynarzy

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

PRZEWODNIK PO PRZEDMIOCIE

Serwis jest dostępny w internecie pod adresem Rysunek 1: Strona startowa solidnego serwisu

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Szczegółowy opis zamówienia:

Aplikacje Internetowe

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

KS-ZSA. Mechanizm aktualizacji kartotek lokalnych w aptece na podstawie zmian w kartotece CKT. Data aktualizacji:

SZCZEGÓŁOWY OPIS SPOSOBU DOSTĘPU DO INFORMACJI I DANYCH ZAWARTYCH W RAPORTACH SKŁADANYCH DO KRAJOWEJ BAZY DLA GIOŚ I WIOŚ

Aplikacje WWW - laboratorium

OpenLaszlo. OpenLaszlo

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Elektroniczna Skrzynka Podawcza

Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej przez użytkowników podobszaru SR

Miejskie Wodociągi i Oczyszczalnia sp. z o.o. w Grudziądzu. ibok. Internetowe Biuro Obsługi Klienta. Instrukcja obsługi

Spis treści. O autorze 13 Przedmowa 15 Wprowadzenie 17

Podręcznik Użytkownika LSI WRPO

Specyfikacja funkcjonalna

Zdalna edycja i przeglądanie dokumentacji medycznej.

Punkt dystrybucji recept

Zmienne i stałe w PHP

Transkrypt:

Praktyczne zastosowanie technologii AJAX do tworzenia stron WWW Sylwia Binek, Agata Nawrocka, Marek Mędrek Państwowa WyŜsza Szkoła Zawodowa w Chełmie Streszczenie: AJAX to technologia pozwalająca na szybsze i bardziej interaktywne działanie stron WWW. AJAX opiera się na znanych i popularnych dotychczas językach programowania, pokazując nowe moŝliwości kooperacji tych technologii w interaktywnych aplikacjach typu klient-serwer. Dzięki wykorzystaniu składających się na AJAX: JavaScriptu, XML-a oraz klasy XMLHttpRequest aplikacja pracująca w technologii przeglądarkowej zyskuje cechy oprogramowania lokalnego, tj.: brak konieczności przeładowywania stron i dynamiczne korzystanie z danych zawartych w relacyjnych bazach danych. Abstract: AJAX it is a technology that's allows faster and more interactive web pages working. AJAX is based on well known and so far popular programming languages, which show new possibilities of cooperation these technologies in interactive client-server applications. AJAX includes JavaScript, XML and XMLHttpRequest classes, that's why application which works in browser technology gains local software features i.e. lack of necessity overloading the web pages and quick and simple access to data enclosed in relational database.

1.Wstęp Autorem nazwy AJAX (Asynchronous JavaScript And XML - Asynchroniczny JavaScript i XML) jest Jesse James Garett, który po raz pierwszy uŝył ww. akronimu w opracowaniu AJAX: A New Approach to Web Applications ( AJAX: Nowe podejście do aplikacji webowych ) w 2005 roku [1]. Skrót AJAX w zamierzeniu autora miał słuŝyć jako zwięzłe określenie technologii oferowanych klientowi podczas projektowania bardziej interaktywnych serwisów WWW. AJAX jest zatem bardzo młodą techniką łączenia wcześniej znanych technologii przedstawionych na rysunku 1, które realizują następujące warstwy aplikacji: CSS oraz XHTML - do generowania interfejsu uŝytkownika, Document Object Model - do generowania elementów dynamicznych, XML i XSLT - do wymiany danych, XMLHttpRequest - do asynchronicznego przesyłania danych, JavaScript jako silnik dynamicznej aktualizacji interfejsu uŝytkownika. 2. Przepływ danych Rysunek 1 Technologie tworzące AJAX. Transmisja danych jest szczególnie waŝnym elementem w przedsięwzięciach realizowanych w technologii klient-serwer. AJAX pozwala na wykorzystanie mechanizmów umoŝliwiających transmisję w tle działającej strony internetowej, co eliminuje konieczność nuŝącego oczekiwania na załadowanie zaktualizowanej strony serwisu do przeglądarki WWW po stronie uŝytkownika oraz ogranicza ilość przesyłanych danych. Wysoki stopień interaktywności, szybkie reakcje na poczynania uŝytkownika sprawiają wraŝenie, iŝ z wykorzystaniem AJAX-a reakcje aplikacji przeglądarkowej są podobne do zachowania lokalnie zainstalowanych programów.

Rysunek 2 Asynchroniczny przepływ danych w aplikacji AJAX. Zasada działania aplikacji WWW wykorzystującej AJAX w pierwszej fazie wykonywania programu wygląda tak jak w klasycznym scenariuszu przetwarzania serwisów HTML: strona zostaje pobrana z serwera, w pełni załadowana i zinterpretowana w przeglądarce uŝytkownika. RóŜnica zaczyna się w chwili kliknięcia uŝytkownika w celu wykonania określonej akcji. Wówczas kontrolę nad zachowaniem serwisu przejmują pozostałe elementy składające się na AJAX-a. Odpowiednio napisany skrypt JavaScript pozwala na odczytanie akcji uŝytkownika i wysyłanie Ŝądania HTTP do serwera WWW. W wysyłaniu Ŝądania i transmisji danych pośredniczy klasa (API) XMLHttpRequest, która potrafi pełnić rolę niezaleŝnego kanału komunikacyjnego pomiędzy stroną WWW po stronie klienta, a warstwą serwera WWW. PowyŜszą sytuację obrazuje rysunek 2. Dane wymieniane za pośrednictwem XMLHttpRequest mogą być sformatowane w róŝnej postaci, jednak najczęściej wykorzystywany jest format XML oraz HTML [2]. śądania mogą być przesyłane zarówno metodą POST jak i GET: Ŝądania HTTP POST umieszczają przekazane dane za informacjami o nagłówkach Ŝądania, natomiast, Ŝądania HTTP GET dołączają do adresu URL nazwy parametrów i ich wielkości. Wywołania AJAX-a mogą być obsługiwane w sposób: Asynchroniczny - wykonywane jest na akcję uŝytkownika zaś Ŝądanie zwracane jest z wywołaniem zwrotnym, nie blokując interfejsu strony w oczekiwaniu na odpowiedź. Ten rodzaj wywołania wykorzystywany jest najczęściej do sprawdzania formularza, autouzupełniania i itp. Synchroniczne wykonywane jest automatycznie, co określony interwał czasowy. Ten typ Ŝądania wykonywany jest z bezpośrednim zwracaniem wartości, co niekiedy powoduje wstrzymanie pracy uŝytkownika w celu odebrania odpowiedzi z serwera. Wywołanie to ma najczęściej zastosowanie w aplikacjach, w których istotne jest np. zapisanie w pamięci aktualnie pisanego dokumentu.

WyŜej opisane zapytania wykonywane są w tle, poza wiedzą korzystającego ze strony, dając w ten sposób uŝytkownikowi moŝliwość dalszych, nieprzerywanych oczekiwaniem działań na stronie. Kolejnym etapem po wysłaniu Ŝądania jest uzyskanie odpowiedzi. Do tego celu są zazwyczaj wykorzystywane języki skryptowe interpretowane po stronie serwera, np. język PHP. Skrypty napisane w tym języku mogą być odpowiedzialne np. za połączenie z bazą danych oraz wykonanie określonych zmiany w danych. Po wykonaniu Ŝądanego działania, gdy skrypt utworzy odpowiedź (moŝe to być zarówno w formacie zwykłego tekstu jak i pliku XML), wygenerowana wiadomość zostaje przesłana do skryptu, który zapoczątkował dane zdarzenie. Interfejs DOM odczytuje dane zawarte w pliku juŝ po stronie klienta, następnie dane te są wypakowywane i wyświetlane na stronie. W zaleŝności od rodzaju przesłanych danych wykonywana jest określona akcja - zazwyczaj jest to zmiana wizualna strony HTML. Proces wyświetlania nie wymaga ponownego odświeŝenia strony, zatem uŝytkownik moŝe nadal pracować ze stroną, której postać jest dynamicznie uaktualniana wraz z odbieraniem kolejnych porcji danych. 2.1. Techniki po stronie klienta Podstawą technologii AJAX od strony klienta są cztery elementy: JavaScript, interfejs DOM, obiekt klasy XMLHttpRequest oraz struktury XML [3]. Kod skryptu JavaScript jest stałym elementem serwisu WWW nie podlega on dynamicznym zmianom podczas działania aplikacji. Dzięki takiemu rozwiązaniu moŝliwe jest manipulowanie kodem strony, w której dany skrypt został zawarty, a w efekcie zmianę wyglądu wyświetlanej strony WWW. Proces ten wspomagany jest przez interfejs DOM, który jest wykorzystywany z poziomu języka JavaScript do programowej modyfikacji dokumentu w przeglądarce np. dodawania nowych elementów, zmiany zawartości elementów, modyfikacji stylu elementów. Przy formatowaniu wizualnej części strony znaczną rolę odgrywa technologia CSS pozwalająca na ustawienie w osobnym pliku opcji formatowania dokumentu. Obiekt XMLHttpRequest umoŝliwia wysyłanie asynchronicznego Ŝądania przez protokół HTTP za pomocą JavaScript. Obiekt ten posiada własne API, którego metody i właściwości pozwalają na określenie istotnych parametrów tworzenia obiektu, inicjalizacji Ŝądania oraz obsługi odpowiedzi serwera. Ostatni element, struktury XML, wykorzystywane są jako protokół pakujący i przesyłający dane. W dokumentach tych zawierane są zarówno informacje wysyłane na serwer jak i odpowiedzi, które on generuje. Manipulowanie plikami XML umoŝliwia interfejs DOM pozwalająca na odczytanie zawartości dokumentów. Stworzony w ten sposób obiekt z elementami DOM dodawany jest do kodu aktualnie wyświetlanej strony zmieniając wybrane elementy WWW. 2.2. Techniki po stronie serwera Technologia AJAX daje moŝliwości tworzenia bardziej inteligentnych aplikacji klienta, co oznacza, Ŝe serwer, z którym te aplikacje współpracują, musi posiadać równie inteligentne narzędzia. w innym wypadku nie będą one w stanie się porozumieć. Istotnymi elementami pracującymi po stronie serwera są dynamiczne skrypty pisane w PHP, DOM umoŝliwiający odczyt danych z formatu XML oraz baza danych, np. MySQL przechowujący dane i zarządzający nimi [3]. PHP jest to język skryptowy działający po stronie serwera: skrypty PHP są interpretowane przez serwer WWW, nim strona zostanie przesłana do przeglądarki.

Działanie PHP, szczególnie podczas odczytu dokumentów XML otrzymywanych z róŝnych źródeł jest wspomagane przez DOM działający po stronie serwera: klasa DOMDocument wspomaga składanie dokumentu XML zawierającego odpowiedź na zapytanie, w celu wysłania go do klienta. Pomimo, iŝ bazy danych nie zalicza się do technologii AJAX są one istotną częścią stron internetowych. Informacje przechowywane wewnątrz nich wykorzystywane są w celu dynamicznego generowania odpowiedzi dla aplikacji. Do połączeń z bazą danych wykorzystywany jest kod PHP, jednak klient nie ma nigdy bezpośredniego dostępu do bazy danych, tylko do warstwy biznesowej zawartej w kodzie PHP, który umieszczony jest na serwerze, co ukazuje rysunek 3. Rysunek 3 Łączenie z bazą MySQL KaŜda operacja opiera się na otwarciu połączenia, wykonania zapytania SQL i odczytania wyników oraz zamknięcia połączenia. 3. Schemat działania przykładowej aplikacji 3.1. Informacje wstępne W ramach projektu praktycznego, ilustrującego działanie technologii AJAX zaktualizowany został serwis Konferencji Informatyki Stosowanej www.kis.pwszchelm.pl o elementy kilka najpopularniejszych elementów tej technologii. Zastosowane rozwiązania miały na celu zwiększenie interaktywności strony i ograniczenie ilości przesyłanych danych. Rysunek 4 zawiera diagram przypadków uŝycia wykonywanej aplikacji. Rysunek 4 Diagram przypadków uŝycia technologii AJAX na stronie WWW

3.2 Formularz Wypełnienie formularza zgłoszeniowego to jeden z przypadków wykorzystania AJAX-a. Sprawdzenie i ewentualna weryfikacja wprowadzonych danych, pozwala na zapewnienie odpowiednio wysokiego poziomu zabezpieczeń i jakości przesyłanych danych. Niepoprawnie wprowadzone dane mogą stanowić duŝe zagroŝenie dla programu, jak i bazy danych. Sprawdzenie poprawności wprowadzanych danych oznacza określenie, czy spełniają one zdefiniowane przez administratora strony reguły [4]. Na Rysunku 5 pokazana jest róŝnica między przetwarzaniem danych metodą tradycyjną, gdzie przeglądarka ładuje całą stronę po kaŝdej zmianie, a modelem AJAX-owym, w którym Ŝądania przeładowują tylko te części, które się zmieniły [5]. Rysunek 5 Lewa strona rysunku przedstawia tradycyjne podejście do przetwarzania danych. Po prawej stronie znajduje się model AJAX-a. Dana aplikacja sprawdza poprawność wprowadzonych danych klasycznie - na serwerze, po wysłaniu formularza. Dokonuje równieŝ weryfikacji w technologii AJAX, kiedy uŝytkownik porusza się pomiędzy polami formularza. Rysunek 6 przedstawia diagram opisujący algorytm ww. sytuacji. Rysunek 6 Weryfikacja formularza wykonywana bez przerywania uŝytkownikowi

Kod formularza sprawdza poprawność danych poprzez wykorzystanie technologii AJAX (po stronie klienta) i klasycznie na serwerze. Weryfikacja przy uŝyciu AJAX-a pojawia się w momencie, kiedy pole formularza przestaje być aktywne. Jego zawartość jest przesyłana na serwer, który sprawdza poprawność danych i w zaleŝności od tego, czy dane są właściwej postaci zwraca 1, lub 0 gdy są niepoprawne. JeŜeli taka ocena zawiedzie uŝytkownikowi zostaje wyświetlony komunikat o błędzie. Weryfikacja po stronie serwera odbywa się przy uŝyciu skryptu PHP. Wysłane dane z formularza są sprawdzane pod względem zgodności z ustalonymi regułami. JeŜeli funkcja sprawdzająca nie wykryje błędów w danych wejściowych uŝytkownik otrzyma komunikat o poprawnej rejestracji. JeŜeli jednak dane są niepoprawne wyświetli się komunikat, informujący o źle wypełnionym polu. 3.4. Autouzupełnianie i podpowiadanie Podpowiadanie i autouzupełnianiu to obecnie bardzo popularne funkcje, szeroko wykorzystywane w większości przeglądarek i systemów operacyjnych. Podpowiadanie i autouzupełnianie to dwie strony tej samej monety, działają one wspólnie i z reguły nie określa się granicy, która dzieliłaby te pojęcia. W praktyce częściej mówi się jednak o autouzupełnianiu. Funkcja autouzupełniania przewiduje, jakiego słowa lub frazy uŝytkownik chce uŝyć. Cecha ta w znaczącym stopniu przyspiesza pracę z programem i pozwala uniknąć błędów związanych z ortografią, jak i wyeliminować zdarzające się podczas wprowadzania danych literówki [3]. Opcja autouzupełniania na stronie wykonanego projektu została uŝyta w bazie publikacji. Ma ona za zadanie ułatwienie uŝytkownikowi wyszukania określonego artykułu, w momencie, kiedy zostanie wpisane hasło kluczowe, imię lub nazwisko autora. Rysunek 7 ilustruje tą właśnie sytuację. Rysunek 7 Diagram sekwencji dla przypadku wyszukiwania danych Funkcjonalności uzyskane dzięki wykorzystaniu technologii AJAX w projekcie to przede wszystkim: dane, odpowiadające wpisanym przez uŝytkownika znakom, pojawiające się w trakcie pisania jako rozwijana lista, automatyczne uzupełnienie pisanego słowa do pierwszej podpowiadanej nazwy, dopisane litery są podświetlone,

początkowe litery podpowiadanych haseł, które odpowiadają wpisanym przez uŝytkownika znakom są pogrubione, rozwijana lista jest przewijana, ale pasek przewijania pojawia się jedynie, gdy wyniki przekraczają domyślnie przypisany im obszar. 4. Podsumowanie Celem aplikacji wykonanych w technologii AJAX jest interaktywne działanie stron internetowych. W artykule wskazanych zostało kilka praktycznych zastosowań technologii AJAX, przy wykorzystaniu znanych wcześniej języków programowania. Technologia AJAX dominuje nad pozostałymi sposobami tworzenia stron WWW niwelując, a zarazem zmniejszając tzw. martwy czas. Bibliografia [1] Garett Jesse James AJAX: A New Approach to Web Applications, Luty 18, 2005 rok [2] Joshua Eichorm, Werner M. Krauß,,AJAX wyjątkowo interaktywne i wydajne aplikacje WWW, PHP Solutions, Nr 1/2006 [3] Darie Cristian, Brinzarea Bogdan, Chereches Tosa Filip, Bucica Mihiai AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych, HELION, 2006 [4] Perry Bruce 80 sposobów na Ajax, HELION, 2007 [5] Oliver Fromel,,Szybciej, wyŝej, dalej!, LINUX-MAGAZIN, Nr 35/2007