Strony internetowe nie przypominają już tych sprzed kilku lat. Są to w pełni interaktywne, przyjazne dla użytkownika serwisy, dokładnie rozplanowane, poczynając od struktury, a na kodzie i grafice kończąc. Tworzenie stron internetowych stało się sztuką, do której dołączył ostatnio AJAX.
AJAX łączy funkcjonalność kilku znanych technologii. Kluczowym elementem jest język HTML i arkusze stylów CSS, a także DOM (ang. Document Object Model), który pozwala na dynamiczne zmiany w strukturze i treści dokumentu z poziomu języka JavaScript, oraz obiekt XMLHttpRequest, który umożliwia wysłanie żądania do serwera i pobranie tylko potrzebnych danych. Dane przesyłane są asynchronicznie, a wykonywanie działania aplikacji do czasu odebrania danych nie jest zatrzymywane.
W praktyce
AJAX reagując na żądania użytkownika umożliwia pobranie dowolnych porcji informacji z serwera i wykorzystując JavaScript wyświetlenie ich gdziekolwiek na stronie. Nie chodzi tu tylko o kwestie estetyczne. AJAX pozwala zwiększyć szybkość i czas reakcji aplikacji, co zmniejsza ruch generowany na serwerze WWW.
Działanie AJAXa jest niezależne od platformy i rodzaju wykorzystywanej przeglądarki internetowej, o ile spełnia ona pewne wymagania, czyli jeśli wersja przeglądarki nie jest za stara lub ActiveX (jedynie w przypadku Internet Explorera) czy JavaScript nie są wyłączone.
Gdzie użyć AJAXa?
Nietrudno oprzeć się wrażeniu, że AJAX swoją funkcjonalnością może całkowicie zmienić działanie każdego serwisu. Najprostszym przykładem są systemy logowania. Większość z nich po wpisaniu nieprawidłowej pary \”użytkownik + hasło\” przeładowuje całą stronę, dodając jedynie w odpowiednim miejscu komunikat o błędzie.
Podczas tej operacji przeglądarka internetowa zmuszona jest wysłać żądanie i przeładować całą stronę tylko po to, aby wyświetlić ów komunikat. Gdybyśmy jednak wykorzystali AJAXa w tym miejscu, błędne logowanie mogłoby być sygnalizowane przesłaniem znaku 0 (zero), po czym za pomocą kodu JavaScript umieścilibyśmy odpowiedni komunikat na stronie.
Łatwo więc zauważyć, że liczba przesłanych informacji zostałaby zmniejszona do jednego bajta (nie licząc nagłówków http, które są jednak przesyłane w obydwu przypadkach), więc zysk, jeśli chodzi o szybkość reakcji i optymalizację, jest ogromny.
Wielkie korporacje, takie jak Google, Microsoft czy Yahoo, już dawno spostrzegły możliwości AJAXa. W przypadku Google są to: Google Maps (interaktywna, satelitarna mapa Ziemi – http://maps.google.com), Gmail (klient e-mail dostępny przez WWW – http://gmail.google.com) czy Google Suggest (wyszukiwarka stron internetowych z systemem podpowiedzi – http://www.google.com/webhp?complete=1&hl=en). Microsoft udostępnił wirtualną mapę Ziemi – http://virtualearth.msn.com, zaś Yahoo – serwis wymiany zdjęć Flickr – http://www.flickr.com.
Jak zacząć?
W internecie jest wiele gotowych rozwiązań ułatwiających wdrożenie AJAXa. Najprostszymi są obiekty JavaScript, które łączą w sobie całą jego funkcjonalność i często dodają kilka pożytecznych funkcji. Jedną z nich jest AdvancedAJAX (http://advajax.anakin.us), jedyne rozwiązanie tego typu z pełną dokumentacją dostępną z języku polskim.
Wykorzystanie tego obiektu JavaScript powoduje, że wywołania AJAXa sprowadzają się do napisania jednej linijki kodu, a użytkownik ma pełną kontrolę nad obsługą błędów, wznawianiem przedawnionych połączeń czy integracją z formularzami HTML. Po drugiej stronie są rozwiązania ściśle związane z wybranym językiem programowania.
Jeśli chodzi o język PHP, to warta uwagi jest biblioteka XAJAX (http://xajax.sourceforge.net), która ułatwia korzystanie z metod klas PHP po stronie klienta. Niezwykle przydatna jest również biblioteka JSPAN, która pozwala na konwersję typów z języka PHP na działający odpowiednik dla języka JavaScript, co umożliwia przesyłanie zawartości m.in. tablic i wykorzystanie ich po stronie klienta.
Czy warto?
Na pewno, ale z rozwagą. Warto przyjrzeć się serwisom wykorzystującym AJAXa i zastanowić się, czy dołączenie go do własnej strony nie przysporzy więcej problemów, niż korzyści. Trzeba też pamiętać o tych, którzy z uroków AJAXa nie będą mogli korzystać, aby byli w stanie używać serwisu w \”tradycyjny\” sposób.
Czym jest AJAX?
Sercem AJAXa jest obiekt języka JavaScript – XMLHttpRequest. Jego wykorzystanie wymaga włączonej opcji wykonywania aktywnych skryptów w przeglądarce internetowej użytkownika (domyślnie włączona) oraz (jedynie w przypadku przeglądarki Internet Explorer) możliwości tworzenia obiektów w technologii ActiveX (również domyślnie włączona).
AJAX działa na następujących przeglądarkach internetowych: Microsoft Internet Explorer 5.0 i nowsza, Mozilla/Mozilla Firefox 1.0 i nowsza, Netscape 7.1 i nowsza, Opera 7.6 i nowsza, Apple Safari 1.2 i nowsza, Konqueror.