encyklopedia.space

Ajax

Ajax (ang. Asynchronous JavaScript and XML) – zestaw technik programistycznych wykorzystywanych w HTML, CSS i JavaScript umożliwiających asynchroniczną wymianę danych pomiędzy przeglądarką a serwerem bez konieczności przeładowywania całej strony. Dzięki temu aplikacje sieciowe mogą działać szybciej i sprawniej, przypominając tradycyjne aplikacje desktopowe.

Historia

Początki koncepcji asynchronicznego pobierania danych sięgają lat 90., jednak termin „Ajax” został po raz pierwszy użyty w artykule 2005 roku autorstwa Jesse James Garcïi. W kolejnych latach technologia zyskała popularność dzięki bibliotece jQuery, która znacząco uprościła pracę z obiektami XMLHttpRequest.

Podstawowe elementy

  • XMLHttpRequest – natywny interfejs przeglądarki umożliwiający wysyłanie żądań HTTP w tle.
  • Fetch API – nowoczesny interfejs zastępujący XMLHttpRequest, pozwalający korzystać z obietnic (Promise) i async/await.
  • JSON – powszechnie używany format wymiany danych, bardziej lekki niż XML.
  • DOM – manipulacja strukturą dokumentu po otrzymaniu odpowiedzi z serwera.

Jak działa Ajax?

Typowy scenariusz korzystania z Ajaxu wygląda następująco:

  1. Użytkownik wywołuje akcję (np. kliknięcie przycisku).
  2. Skrypt JavaScript tworzy żądanie za pomocą XMLHttpRequest lub fetch().
  3. Żądanie zostaje wysłane do serwera przy użyciu protokołu HTTP (metody GET, POST itp.).
  4. Serwer przetwarza żądanie i zwraca odpowiedź (zwykle w formacie JSON).
  5. Po otrzymaniu odpowiedzi JavaScript aktualizuje fragmenty strony, modyfikując DOM bez przeładowania całego dokumentu.

Zalety

  • Redukcja liczby pełnych odświeżeń strony → szybsze działanie aplikacji.
  • Lepsza interaktywność i płynność interfejsu użytkownika.
  • Możliwość tworzenia aplikacji jednopunktowych (SPA), które działają jak aplikacje natywne.
  • Obniżenie zużycia pasma dzięki wymianie tylko niezbędnych danych.

Wady i ograniczenia

  • Wymaga obsługi po stronie klienta – w przeglądarkach z wyłączonym JavaScriptem Ajax nie zadziała.
  • Kompleksowość zarządzania stanem aplikacji przy dużych projektach (rozwijane m.in. przy pomocy Redux, Vuex).
  • Problemy z indeksowaniem treści przez roboty wyszukiwarek (rozwiązane częściowo przez SSR i prerendering).
  • Potencjalne problemy z bezpieczeństwem – konieczność ochrony przed atakami CSRF i XSS.

Popularne biblioteki i frameworki wspierające Ajax

  • jQuery – metoda $.ajax() oraz uproszczone aliasy $.get(), $.post().
  • Angular – usługa HttpClient pozwalająca na deklaratywne wykonywanie zapytań.
  • React – często używany w połączeniu z fetch() lub biblioteką Axios.
  • Vue.js – integruje się z axios oraz natywnym fetch.

Przykładowy kod

document.getElementById('loadBtn').addEventListener('click', async () => {
    try {
        const response = await fetch('/api/dane', {
            method: 'GET',
            headers: { 'Accept': 'application/json' }
        });
        const data = await response.json();
        document.getElementById('result').textContent = data.wiadomosc;
    } catch (err) {
        console.error('Błąd Ajax:', err);
    }
});

Zastosowania

Ajax jest wykorzystywany w:

Powiązane pojęcia

Więcej informacji można znaleźć w artykułach: JavaScript, XML, JSON, HTTP, Single‑Page Application (SPA), REST, CORS.