AJAX

Asynchroniczny JavaScript i XML (ang. Asynchronous JavaScript and XML, AJAX) – technika tworzenia aplikacji internetowych, w których 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. Terminal AJAX został wymyślony przez Jesse Jamesa Garretta(inne języki).

Podstawowe elementy AJAX

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

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

Przykład utworzenia nowego obiektu XMLHttpRequest

function ajaxFunction(){
  var xmlHttp;
  try{
    // Utworzenie obiektu XMLHttpRequest (silnik Gecko, WebKit, Presto, Trident w IE>6)
    xmlHttp=new XMLHttpRequest();
  } catch(e) {
    // Wyłapuje błąd jeśli JavaScript nie posiada obiektu XMLHttpRequest
    try {
      // Utworzenie obiektu ActiveXObject, który jest zawarty w kontrolce ActiveX IE
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        // Utworzenie obiektu ActiveXObject, dla innych wersji IE
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        // Wyświetlenie błędu o braku obsługi obiektu XMLHttpRequest
        alert("Your browser does not support AJAX!");
        return false;
      }
    }
  }
  // zwrócenie obiektu
  return xmlHttp;
}

Przykład pobierania danych JSON przez XHR

Uproszczone pobieranie w przeglądarkach wspierających standardowe tworzenie obiektu XHR oraz parsowanie JSON.

function pobierzDane(onLoad) {
	var request = new XMLHttpRequest();
	request.open('GET', 'data.json');
	request.onload = function () {
		var data = JSON.parse(request.responseText);
		onLoad(data);
	};
	request.send();
}

Przykład użycia API fetch

Funkcja fetch to nowe API dostępne w przeglądarkach, które upraszcza wysyłanie zapytań HTTP. Funkcja fetch zwraca obietnicę.

fetch('data.json').then(response => {
    return response.json();
}).then(data => {
   console.log(data);
});

Biblioteki AJAX

Popularne biblioteki JavaScript powiązane z AJAX-em
Popularne frameworki zawierające skrypty działające po stronie serwera
NazwaJęzyk skryptówUwagi
Echo(inne języki)Java
Google Web ToolkitJava
IT Mill Toolkit(inne języki)Java
ItsNatJava
OpenXavaJava
ZK Framework(inne języki)Java
Ajax.NET ProfessionalASP.NET
ASP.NET AJAXASP.NET
SajaxPHP
SymfonyPHP
PRADOPHP
TigermousePHP
XajaxPHP
Pyjamas(inne języki)Python

Zobacz też

Przypisy

  1. ↑ Jesse James Garrett: Ajax: A New Approach to Web Applications. Adaptive path. [zarchiwizowane z tego adresu (2008-07-02)]. (ang.).
  2. ↑ Fetch API. Mozilla Developer Network. [dostęp 2022-09-04].
  3. ↑ Louis Lazaris: Deep Linking in JavaScript and Ajax Applications. [w:] impressivewebs.com [on-line]. 17 grudnia 2009. [dostęp 2024-02-10].

Linki zewnętrzne