Preskočiť na obsah

Ajax (informatika)

z Wikipédie, slobodnej encyklopédie

AJAX (Asynchronous JavaScript + XML) je súhrnné označenie pre technológie vývoja interaktívnych webových aplikácií, ktoré umožňujú meniť obsah stránok bez potreby ich kompletného znovunačítania zo servera. V porovnaní s klasickými webovými aplikáciami môžu AJAX-ové aplikácie pri vhodnom návrhu poskytovať používateľsky komfortnejšíe prostredie, vyžadujú však použitie moderných webových prehliadačov.

Používané technológie

[upraviť | upraviť zdroj]

AJAX nie je samostatný programovací jazyk ani technológia sama o sebe. Je to kombinácia nasledovných prvkov (nie nevyhnutne všetkých):

  • HTML a CSS pre značkovanie a štýlovanie informácií pri zobrazení.
  • DOM spojený s JavaScriptom pre dynamické zobrazenie a interakciu s prezentovanou informáciou.
  • Metóda pre výmenu dát medzi prehliadačom a serverom, bez nutnosti obnovovať zobrazovanú stránku. Najčastejšie sa používa XMLHttpRequest (XHR) objekt. Niekedy je použitý IFrame objekt alebo dynamicky pridaný <script> tag.
  • formát pre dáta poslané prehliadaču. Bežné formáty zahŕňajú XML, predformátované HTML, plain text a JavaScript Object Notation (JSON). Tieto dáta môžu byť dynamicky vytvorené skriptom na strane serveru.

Aplikácia technológie AJAX

[upraviť | upraviť zdroj]

Príklad použitia asynchrónnej žiadosti na server metódou POST.

AjaxJS.js

// Vytvoríme XMLHttpRequest objekt na vykonanie AJAX žiadosti.
if(window.XMLHttpRequest) 
{
  var xmlhttp = new XMLHttpRequest(); 
}

else 
{
 var xmlhttp = new ActiveXObject("MICROSOFT.XMLHTTP");
}

// Pomocou udalosti onreadystatechange a analýzou stavových kódov (4- žiadosť je vykonaná a odpoveď je pripravená, 200- všetko prebehlo v poriadku) spracujeme asynchrónny dopyt.

xmlhttp.onreadystatechange = function()
{
  if((xmlhttp.readyState == 4 && xmlhttp.status == 200))
  {
    var result = xmlhttp.responseText; // Premenná result nadobúda hodnotu dát odoslaných serverom vo forme reťazca.
    console.log(result);
  }
}

xmlhttp.open('POST','AjaxPHP.php',true); // Definujeme cieľový .php súbor a HTTP metódu (GET alebo POST).
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); // Do AJAX žiadosti pridáme header (iba v prípade metódy POST).'Content-type' reprezentuje typ štruktúry tela dopytu (MIME) a sekundárny parameter určuje formát odosielania dát (name/value pairs).
xmlhttp.send("fname=John&lname=Doe"); // Odošleme dáta serveru.

AjaxPHP.php

// Server spracuje prijaté dáta a odošle ich naspäť do dokumentu.

$fname = $_POST['fname'];
$lname = $_POST['lname'];

 echo 'Hello '.$fname.' '.$lname.'.';

Výsledkom je textový output v konzole:

"Hello John Doe."

Je nutné dodať, že ide iba o príklad. Odoslanie dát serveru, ktorý ich prakticky nepozmenené vráti dokumentu, v praxi nemá veľké využitie. Oveľa častejšie sa technológia AJAX používa na dynamické pozmenenie údajov v databáze.