Ajax (programiranje)
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 

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 

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

Splošno 

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 zgledi uporabe 

Vodilno pri uporabi tehnologije Ajax je podjetje Google. 
Zgleda uporabe v njihovih izdelkih:
 Google Mail
 Google Suggest
 Google Docs

Večina popularnih spletnih strani iz generacije Web 2.0 uporablja Ajax:
 Flickr
 Del.icio.us 
 Facebook

Zgled delovanja 

Zgled pošiljanja zahteve (poizvedbe) Ajax. V tem 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

Prednosti 

 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 

 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.

Viri 

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

Zunanje povezave 

 W3C vodič Ajax  

Spletni razvoj
Skriptni jeziki
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 Web0. Navkljub imenu , uporaba tehnologij Javascript in XML ni pogoj za izvajanje Ajaxa . Zgodovina Pojem Ajax je letaskoval 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 ko je podjetje Microsoft v svojem spletnem brskalniku Internet Explorer predstavilo konstrukt IFrame . V letuMicrosoft predstavi Remote Scripting , kjer podatke bere javanska aplikacija , s katero komunicira odjemalec s pomočjo programskega jezika JavaScript . Nadalje letaMicrosoft ustvari XMLHttpRequest objekt kot kontrolnik ActiveX v brskalniku Internet Explorer0 , čemur so kmalu sledili ustvarjalci brskalnikov Mozilla in Safari . Aprilaje konzorcij W3C ( World Wide Web Consortium ) pripravil prvi osnutek specifikacije XMLHttpRequest z željo ustvariti uradni standard za spletne strani . Tehnologija 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 Splošno 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 zgledi uporabe Vodilno pri uporabi tehnologije Ajax je podjetje Google . Zgleda uporabe v njihovih izdelkih : Google Mail Google Suggest Google Docs Večina popularnih spletnih strani iz generacije Web0 uporablja Ajax : Flickr Del.icio.us Facebook Zgled delovanja Zgled pošiljanja zahteve ( poizvedbe ) Ajax . V tem 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 Prednosti 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 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 . Viri Jesse James Garrett : Ajax : A New Approach to Web Applications . Adaptive Path LLC , februar Zunanje povezave W3C vodič Ajax Spletni razvoj Skriptni jeziki