Ajax (programiranje)

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

Ajax (asinhroni JavaScript in XML) je skupina medsebojno povezanih spletnih razvojnih tehnik, uporabljenih za ustvarjanje interaktivnih spletnih aplikacij. Z Ajaxom si lahko spletne aplikacije izmenjujejo podatke s strežnikom asinhrono v ozadju, brez potrebe po ponovnem nalaganju strani.

S tem je mogoče tekoče in hitrejše spremljanje ter spreminjanje vsebine na spletni strani. Podatki se prenašajo s pomočjo objektov XMLHttpRequest ali s pomočjo Remote Scriptinga (v starejših brskalnikih, ki ne podpirajo tehnologije Ajax).

Uporaba tehnologij Ajax je značilna za Web 2.0. Navkljub imenu, uporaba tehnologij Javascript in XML ni pogoj za izvajanje Ajaxa.

Zgodovina[uredi | uredi kodo]

Pojem Ajax je leta 2005 skoval in prvič omenil Jesse James Garrett v svojem članku Ajax: A New Approach to Web Aplications. Tehnologije, na katerih temelji, so se začele razvijati že v letu 1996, ko je podjetje Microsoft v svojem spletnem brskalniku Internet Explorer predstavilo konstrukt IFrame. V letu 1998 Microsoft predstavi Remote Scripting, kjer podatke bere javanska aplikacija, s katero komunicira odjemalec s pomočjo programskega jezika JavaScript. Nadalje leta 1999 Microsoft ustvari XMLHttpRequest objekt kot kontrolnik ActiveX v brskalniku Internet Explorer 5.0, čemur so kmalu sledili ustvarjalci brskalnikov Mozilla in Safari. Aprila 2006 je konzorcij W3C (World Wide Web Consortium) pripravil prvi osnutek specifikacije XMLHttpRequest z željo ustvariti uradni standard za spletne strani.

Tehnologija[uredi | uredi kodo]

V svojem članku je Jesse James Garrett napisal, da se pojem Ajax nanaša na naslednje tehnologije:

  • HTML ali XHTML ter CSS za predstavitev,
  • DOM (Document Object Model) za dinamično prikazovanje vsebine in interakcijo s podatki,
  • XML in XSLT za delo s podatki,
  • objekt XMLHttpRequest za asinhrono komunikacijo,
  • ter JavaScript, ki povezuje vse te tehnologije (JavaScript služi tudi kot vmesnik med posameznimi komponentami).

Zaradi napredka v razvoju in tehnologijah je sedaj del Ajax-a tudi sledeče:

  • poleg jezika JavaScript kot skriptni jezik na strani odjemalca nastopa tudi VBScript
  • XML in XSLT nista več obvezna za izmenjavo in obdelavo podatkov. Pogosto se kot alternativa uporablja JSON (JavaScript Object Notation), čeprav je možno uporabiti tudi druge načine predstavitev podatkov, na primer HTML ali pa celo golo besedilo (plain text).

Uporaba[uredi | uredi kodo]

Splošno[uredi | uredi kodo]

Ajax aplikacije dajejo vtis, kot da v celoti tečejo na računalniku uporabnika. Običajna spletna aplikacija namreč za vsako spremembo na strani pošlje zahtevo HTTP, strežnik pa kot odgovor pošlje celotno stran. Brskalnik mora zato osvežiti celotno stran, s tem pa pride do motečega obnavljanja strani. Spletna aplikacija pa je zato počasna in čisto nič podobna namiznim.

Aplikacije Ajax so prirejene za generiranje poizvedb za strežnik, tako da pošljejo samo tiste podatke, ki jih dejansko potrebujejo. Klic se opravi kot asinhrona komunikacija, torej medtem ko aplikacija čaka podatke iz strežnika, lahko uporabnik nemoteno uporablja spletno stran. Ko so podatki pripravljeni, določena funkcija v JavaScriptu prikaže podatke na strani, brez potrebe po ponovnem nalaganju.

Posledica tega je uporabniški vmesnik, ki se veliko hitreje odziva na vnose uporabnika. Razlog za vpeljavo te tehnologije je tudi dejstvo, da se med odjemalcem (brskalnikom) in strežnikom prenese veliko manj podatkov ter da poteka nalaganje podatkov asinhrono. Poleg tega se zmanjša obremenitev spletnega strežnika, ker se veliko obdelave lahko naredi na strani odjemalca.

Tipični primeri uporabe[uredi | uredi kodo]

Uporaba Ajaxa v Google Suggest

Vodilno pri uporabi tehnologije Ajax je podjetje Google. Primera uporabe v njihovih izdelkih:

Večina popularnih spletnih strani iz generacije Web 2.0 uporablja Ajax:

Primer delovanja[uredi | uredi kodo]

Primer pošiljanja zahteve (poizvedbe) Ajax. V temu sklopu je navedena tudi metoda JavaScript pokaziUro, ki bo poskrbela za prikaz na spletni strani:

var myAjax = new Ajax.Request(
  "ura.php",
  { method: 'get', onComplete: pokaziUro }
);

Skript v jeziku PHP na strežniku izdela odgovor:

<?php
  echo "Ura je točno ".date("H");
?>

Ko odjemalec prejme podatke, se kliče zgoraj omenjena metoda pokaziUro, ki prikaže trenutni čas na spletni strani.

function pokaziUro( originalRequest ) {
  document.getElementById('prikaz').innerHTML = originalRequest.responseText;
}

Mnenja[uredi | uredi kodo]

Prednosti[uredi | uredi kodo]

  • Možnost izdelave hitrejših, boljših in uporabniku bolj prijaznih spletnih aplikacij,
  • prenašanje samo določenih podatkov, ne pa celotne strani,kar drastično zmanjša količino prometa med strežnikom in odjemalcem.

Slabosti[uredi | uredi kodo]

  • Podatki se osvežujejo samo znotraj strani, zato je navigacija po strani z brskalnikom (naprej/nazaj) otežena,
  • brskalniki, ki ne uporabljajo skriptnih jezikov JavaScript ali podobnih, imajo težave s prikazom strani ter
  • s programerskega vidika neenotno delovanje na različnih brskalnikih, kar otežuje programiranje aplikacij.

Literatura[uredi | uredi kodo]

  • Jesse James Garrett: Ajax: A New Approach to Web Applications. Adaptive Path LLC, februar 2005

Zunanje povezave[uredi | uredi kodo]