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.
- Boljša uporabniška izkušnja (UX): Stran deluje hitro in gladko, podobno kot namizna aplikacija.
- Manjša poraba pasovne širine: Prenesejo se le potrebni podatki, ne pa celotna HTML struktura.
- 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.