Pozdrav!
E, ne mogu vise a da se ne umesam! Radio sam na jednom prijektu gde se rabi AJAX, otprilike u vreme pocetka rada gmail-a (zapravo, od gmaila smo i dobili ideju za AJAX).
Dakle, imam iskustva po pitanju prednosti i mana AJAX-a.
Mislim, svi ste u pravu, ali, sa druge strane, niko i nije u pravu!
Ajde prvo kratko, banalizovano uputstvo kako "radi" AJAX:
1. Korisnik klikne, odkuca ili uradi neku akciju negde na strani
2. Jedna Javascript funkcija, zakacena za doticnu oblast strane, prepozna akciju i pozove neki fajl, skript, program na strani servera
3. Na serveru se to izvrsi i vraca se rezultat klijentu
4. Druga JavaScript funkcija prihvata rezultate i, uglavnom, pomocu DOM-a "ugradjuje" rezultate na stranicu
Krenimo redom:
1. Zabluda br 1: AJAX je nov!
Nije. Nov je samo naziv a tehnologija postoji od odavno. Ako neverujete pogledajte W3C sajt i pronadjite datum dokumenta kada je httpXMLRequest opisan. U pitanju su godine...
2. Zabluda br 2: AJAX je jezik!
Nije. AJAX je tehnologija a moze se implementirati u bilo kom jeziku.
3. Zabluda br 3: AJAX je nepoznat!
Manje-vise, nije. AJAX je stara tehnologija sa novim imenom. Popularnost je dobio zahvaljujuci Googlu koji je time pristedeo dosta.
4. Zabluda br 3: AJAX je komplikovan!
Nije. AJAX je izuzetno jednostavan. Komplikovan je JavaScript samo zbog toga sto ga svaki browser (a narocito IE) tumaci na svoj nacin i potrebno je izvoditi akrobacije da bi dobio zeljeno resenje.
Namerno sam naveo ove stavke iako nisu, manje-vise, konkretno i u tom konktekstu pominjane. Evo razloga:
Neko je pominjao knjige. Tesko da postoji veliki broj knjiga o samom mehanizmu kad se cela filozofija moze objasniti na par strana. Ukoliko procesljate google, videcete da postoji gomila tekstova i uputstva o implementaciji ali knjiga vrlo malo. I ono sto postoji je vezano za jezik ili za gotov proizvod...
Neko je pomenuo kupce... Kupci manje-vise uopste ne primecuju razlike (zapravo oni i ne treba da primete razlike i da shvate sustinu programiranja; oni treba da KORISTE samo i da im bude udobno pri tom).
Razlike primecuju prodavci!
Zamislite scenu u firmi koja, npr, radi kao 988 ili CallCentar i pritom non-stop cita gomilu podataka o klijentima sa sve slikama. Sta se desava kada neko klikne na submit? Sa servera krene gomila podataka. Neko ce pomisliti da to nije mnogo. Pa i nije. Ali pomnozimo sve to sa recimo 50 korisnika koji isto rade nad istom stranicom, sa 50 drugih korisnika koji unose podatke, sa 50 nekih trecih korisnika koji recimo nadgledaju proces, itd, itd, plus jedno 1000 korisnika koji on-line rade na sajtu kompanije (surf, search...)... Koliki je sad promet paketa po mrezi? A koliko to sve kosta u smislu resurs/brzina/cena???
E, to je to. AJAXom se "poboljsava" odnos cena/brzina jer nije sve jedno kad posaljes celu stranu odnosno samo jedno polje sa strane. Sa druge strane, onih 50 korisnika ima mnogo brzi odziv jer nema refresh-a vec su podaci "uvek" tu...
Jednostavnim jezikom receno: "Jeftinije".
Neko je pomenuo kupce... (ponovo). Ono sto cini rad udobnijim je cinjenica da ajax priblizava izgled i odziv web aplikacije klasicnim desktop aplikacijama, odnosno ponasanju OS-a. Negde kliknes, neka akcija se dogodi. U OS-u nema svaki cas refresh Desktop ili reload aplikacije. Jednostavno korisnik ima utisak da non-stop aplikacija sa njim komunicira (nema cekanja na ucitavanje, combo koji ima history, icq-like chat, i ostali lepi primeri ponasanja desktop aplikacija), odnosno da je pokrenuo nesto kod sebe u lokalu.
Malo o prednostima i manama.
Prednosti sam, u manjem broju, nabrojao.
Mane... hm.. ima ih. Nije da ih nema.
Ono sa cim smo mi imali velikih problema je: Korisnik mahinalno klikne na refresh dugme u okviru browser-a ili F5 preko tastature... I ajmo sve jovo nanovo...
Druga, mnogo veca, mana je ranije pomenuti JScript i browseri... Ukoliko je neko postavio da JS nije dozvoljen... nista nece raditi... Mnogi proxy serveri "seku" JS kao virus-activity, mnogi win pop-up blokeri to isto rade... Mnogi IE pach-evi ne dozvoljavaju JS da radi kako treba...
Mogracija postojecih web aplikacija je... recimo, zanimljiva. Logiku i jezik moze da prepravi i programer pocetnik sa vrlo malo znanja i prakse ali problem nastaje sa JSom! UVEK! I to najvise zbog problema koje sam pobrojao u prethodnom pasusu...
Posla ce tek biti jer su veliki igraci stali iza te tehnologije (Google, Sun, M$, Yahoo...)
Zakljucak izvucite sami...
Za kraj evo jedan link i jedan google search savet:
Ukucajte javascript framework ili ajax framework pa pogledajte sta cete sve dobiti i vidite stranicu
http://www.ajaxpatterns.org/AJAXFrameworks