up
tel.: +48 720 834 416

ques_markOur Technologies

Best technologies. Effective development

AJAX

 

AJAX (ang. Asynchronous JavaScript and XML, asynchroniczny JavaScript i XML) – technika tworzenia aplikacji internetowych, w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu, w sposób asynchroniczny. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w tradycyjnym modelu, w którym każde żądanie nowych danych wiąże się z przesłaniem całej strony HTML.

 

Na technikę tę składa się parę elementów:

  • XMLHttpRequest – klasa umożliwiająca asynchroniczne przesyłanie danych; dzięki asynchroniczności w trakcie pobierania danych użytkownik może wykonywać inne czynności, można także pobierać dane jednocześnie z wielu miejsc.
  • JavaScript – mimo użycia w nazwie, może to być de facto dowolny język skryptowy funkcjonujący po stronie użytkownika (np. JScript czy VBScript).
  • XML – język znaczników, poprzez który miałyby być opisane odbierane informacje. W praktyce jednak dane często przekazywane są w innym formacie, przy czym odbierane są wtedy jako tekst. Mogą to być zarówno gotowe fragmenty HTML, jak i fragmenty kodu JavaScript (zob. JSON), może to być też format specyficzny dla danego zastosowania.

 

Teoretycznie są to wszystkie wymagane elementy, jednak w praktyce używane są jeszcze odpowiednie skrypty funkcjonujące po stronie serwera i współpracujące z bazą danych. Można sobie jednak bez nich poradzić, jeśli wszystkie potrzebne dane zostały już wcześniej wygenerowane (np. zawartość poszczególnych stron prostego serwisu).

 

 

Wady i ograniczenia:

  • Udostępnianie treści strony poprzez język skryptowy ogranicza dostęp do niej dla części użytkowników. Dotyczy to zarówno osób celowo blokujących sobie skrypty (np. ze względu na wysokie obciążenie komputera), jak i używających czytników ekranowych (w których obsługa skryptów może być mocno ograniczona). Problem ten można obejść udostępniając alternatywne, bardziej tradycyjne rozwiązania przynajmniej dla podstawowych funkcji serwisu internetowego. To jednak znacząco zwiększa koszty wprowadzania nowych rozwiązań i np. portale posiadające obsługę kont pocztowych udostępniają czasem starsze wersje interfejsu.
  • Utrudnione jest automatyczne pobieranie stron, gdyż programy takie nie interpretują zwykle języków skryptowych. Możliwość dowolnego pobierania zawartości serwisu nie musi być jednak korzystna z punktu widzenia właścicieli serwisu.
  • Bezpośrednie indeksowanie przez serwisy wyszukujące może być utrudnione, jednak wystarczy zadbać o dostarczanie linków wyświetlających całą treść strony lub stworzyć mapę witryny.
  • Część starych skryptów do analizy ruchu na stronie oparta jest o klasyczny model udostępniania całych stron (konieczność odświeżenia całości). Nowsze skrypty potrafią jednak uwzględnić właściwy pomiar oglądalności stron. Można również bez przeszkód analizować logi żądań wysyłanych do serwera WWW.
  • Wadą rozwiązań w znaczącym stopniu opartych na AJAX jest fakt, że przestaje funkcjonować tradycyjny schemat przeglądania stron umożliwiający swobodne poruszanie się w przód i w tył. Na przykład jeśli kliknięcie w link powoduje wywołanie skryptu zmieniającego wnętrze strony (menu pozostaje bez zmian), to użytkownik nie będzie mógł się cofnąć korzystając z przycisku „Wstecz” przeglądarki. Twórcy serwisu WWW mogą jednak zbudować analogiczny mechanizm rozwijając go nawet do wycofywania zmian w konkretnym fragmencie strony.