Blog o spletnem programiranju in elektroniki
💬 👤
back Nazaj na blog
WEB (HTML, CSS, PHP)

Kako deluje AJAX in zakaj je ključen za sodobne spletne strani

V zgodnjih dneh spletnega razvoja je vsaka interakcija uporabnika – kot je bila oddaja obrazca ali klik na naslednjo stran – zahtevala popolno ponovno nalaganje celotne spletne strani. To je pomenilo počasnejšo uporabniško izkušnjo in nepotrebno obremenitev strežnika. Z prihodom tehnologije AJAX se je način delovanja spletnih aplikacij popolnoma spremenil, saj omogoča osveževanje podatkov v ozadju brez ponovnega nalaganja strani.

Kaj je AJAX in kako deluje?

AJAX je kratica za Asynchronous JavaScript and XML. Čeprav ima v imenu XML, se danes za prenos podatkov skoraj izključno uporablja lažji format JSON. Ključna beseda v imenu je asinhrono, kar pomeni, mehanizem deluje v ozadju, ne da bi motil uporabnikovo brskanje ali blokiral spletni vmesnik.

Korak Akcija Opis
1. Dogodek (Event) Uporabniški klik ali vnos JavaScript zazna dogodek (npr. klik na gumb ali vnos besedila).
2. Zahteva (Request) Pošiljanje na strežnik Browser pošlje HTTP zahtevo (GET ali POST) na strežnik v ozadju.
3. Obdelava Strežniška logika PHP ali drug backend obdela podatke in vrne odgovor (JSON).
4. Posodobitev DOM-a Prikaz na strani JavaScript sprejme podatke in posodobi le določen del HTML-ja.

Prednosti uporabe tehnologije AJAX

Uporaba asinhronih zahtev prinaša bistvene prednosti tako za razvijalce kot za končne uporabnike spletnih aplikacij.

  1. Boljša uporabniška izkušnja (UX): Stran deluje hitro in gladko, podobno kot namizna aplikacija.
  2. Manjša poraba pasovne širine: Prenesejo se le potrebni podatki, ne pa celotna HTML struktura.
  3. Manjša obremenitev strežnika: Strežnik obdeluje le konkretne zahteve po podatkih namesto ponovnega izrisovanja celotne strani.

Primer uporabe Fetch API v JavaScriptu

Nekoč se je za AJAX uporabljal objekt XMLHttpRequest, danes pa v sodobnem JavaScriptu primarno uporabljamo veliko bolj pregleden fetch() API.

// Funkcija za pridobivanje podatkov o izdelku v ozadju
function getProductDetails(productId) {
  fetch('/api/products.php?id=' + productId)
    .then(response => {
      if (!response.ok) {
        throw new Error('Napaka pri pridobivanju podatkov');
      }
      return response.json();
    })
    .then(data => {
      // Posodobimo le določen element na spletni strani
      document.getElementById('product-price').innerText = data.price + ' €';
      document.getElementById('product-status').innerText = data.status;
    })
    .catch(error => {
      console.error('AJAX napaka:', error);
    });
}

Preizkusite praktične primere v simulatorju

Če želite preizkusiti delovanje AJAX zahtev v praksi in videti več različnih primerov uporabe, si lahko ogledate interaktivne primere v naši AJAX vadnici in simulatorju.

back Nazaj na blog