Desi javascript nu suporta clase totusi se poate poate programa obiectual si anume folosind prototipuri. Javascript este un limbaj in care gasesti atat cele mai mari idiotenii posibile care s-au putut inventa in vre-un limbaj de programare cat si unele cu adevarat geniale, printre acestea se numara faptul ca un obiect in Javascript este un container generic la care ii poti adauga oricand o noua proprietate sau “metoda”. Mai jos este un exemplu de “clasa” (un echivelent al unei clase din limbaje care suporta asa ceva) ce incapsuleaza mecanismul cunoscut si sub denumirea de AJAX.
Pentru cei care nu stiu AJAX este un mecanism de comunicare asicrona cu server-ul, adica pentru a aduce informatie nu este necesara un refresh de pagina.
function AjaxRequest(url)
{
this.url=url;
this.xmlHttp=”";
this.init=function()
{
try
{
// Firefox, Opera 8.0+, Safari
this.xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
this.xmlHttp=new ActiveXObject(”Msxml2.XMLHTTP”);
}
catch (e)
{
try
{
this.xmlHttp=new ActiveXObject(”Microsoft.XMLHTTP”);
}
catch (e)
{
alert(”Your browser does not support AJAX!”);
return false;
}
}
}
}
this.request=function()
{
this.init();
try{
this.xmlHttp.open(this.requestType,this.url,true);
}
catch(e)
{
this.onLoadFaild(e);
}
this.xmlHttp.send(this.vars);
var parent=this;
this.xmlHttp.onreadystatechange=function()
{
var done = 4, ok = 200;
if (parent.xmlHttp.readyState == done && parent.xmlHttp.status == ok)
{
if (parent.xmlHttp.responseText)
{
parent.onLoad(parent.xmlHttp.responseText);
}
}
}
}
this.get=function(vars)
{
this.vars=vars;
this.requestType=”GET”;
this.request();
}
this.post=function(vars)
{
this.vars=vars;
this.requestType=”POST”;
this.request();
}
}
Codul este destul de simplu ..aproape ca vorbeste de la sine. Avantajul programarii folosind obiecte este ca utilizare este foarte simpla plus ca putem avea conexiuni multiple pe servere separate
script1=new AjaxRequest(”http://un.site.de.undeva”);
script1.onLoad=function(sucess){
if(sucess==true){
prelucreaza informatia primita
}
}
script1.get(”");
script2=new AjaxRequest(”http://un.site.de.altundeva”);
script2.onLoad=function(sucess){
if(sucess==true){
prelucreaza informatia primita
}
}
script2.get(”");