luni, 6 octombrie 2008

D-ale JavaScript-ului

Pai si in cele din urma m-am incumetat sa-mi bag si eu nasu in ceva AJAX :( Nu ca as avea ceva cu AJAX-ul dar JavaScript-ul m-a enervat de cind ma stiu... aia e, pina la urma le faci pe toate :D Mai ales cind la servici e as de interesant ca te intrebi de ce draq ai mai plecat de acasa.

Asa ca deci si prin urmare, am inceput si eu asa catinel cu ceva exemple de pe net... Toate bune si frumoase daca as fi avut un server instalat pe calcul meu. Mai nashpa e ca, din motive de securitate cica :D, pe calcul de la munca nu prea poti instala nika daca nu-ti da voie sysadminu; mori de ris: pe compul tau nu esti administrator.

Trecem peste faza cu pricina si revenim la Ajax... Carevasazica, exemplele mele se bazeaza pe parte de server venita fix de pe web, de la site-uri binevoitoare care pun ceva scripturi la dispozitie. Anyways, nu ca aveam in minte vreo idee de aplicatie sau ca aveam chef de scris ceva server-side.

Deci, volens nolens, ajung la XMLHttpRequest.onreadystatechange... Iete ca asta e mai asa de capu ei in Firefox fata de IE. mai precis in IE mere bine, dar in Firefox funtioneaza doar daca o chemi dupa XMLHttpRequest.open. Adicatelea asta nu mere in FF:

xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}

da' asta mere:

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);


Dupa ce m-am crucit bine, bine am cautat ceva explicatie pe net si se pare ca "open - strips the handler in their xml http request objects". Mama ce tari si Firefox-ii astia :D
Ca sa fie tacimul complet se pare ca totusi onreadystatechange mere si inainte de open citeodata... mai precis site-ul la care ma uitam eu la exmple are fisierele .asp care dau raspunsul in acelasi director cu pagina html care face cererea... Oare de asta mere la ei?!
Poate stie careva mai bine sa ma lamureasca si pe mine, ca mintea mea obosita nu prea pricepe decit ca oamenii de la Firefox implementara aiurea obectu cu pricina...

Oricum ar fi, toata tarasenia imi (re)aduce aminte de ce nu mia- placut niciodata JavaScript :)