Ajax – Definisanje, nedostaci, osnovne tehnike, tok Ajax aplikacije…
Ajax – Definisanje, nedostaci, osnovne tehnike, tok Ajax aplikacije…
Sadržaj
1. Definisanje Ajaxa
2. Nedostaci Ajaxa
3. Osnovne tehnike i tehnologije
4. Tok Ajax aplikacije
5. Želite da saznate više?
Definisanje Ajaxa
Pored sve fame oko "Ajax web aplikacija", može vam se oprostiti pretpostavka da je Ajax neki radikalno novi programski dodatak sličan Macromedia Flash-u. Shodno tome možete biti pod utiskom da Ajax nema granica dok ne unapredite svoj "prošlomesečni" pretraživač, ili barem preuzmete priželjkivani "Ajax plugin".
Dobra vest: Možete da koristite Ajax odmah. Naravno, ukoliko imate neki od web pretraživača poslednje generacije: IE, Firefox, Safari, ili Operu. Da li ste imali prilike da vidite Google mape ili možda Gmail? Oba su Ajax aplikacije, kao i Zuggest i AjaxPatterns Wiki Demo. Šta je to svima njima zajedničko?
Sve ove aplikacije su veliki korak napred ka bogatstvu standardnih desktop aplikacija. Više ne morate da čekate 5 sekundi da se stranica ponovo učita svaki put kada kliknete na nešto. Ajax aplikacije se menjaju u realnom vremenu. One vam dozvoljavaju da povlačite okvire, mogu da se osveže novim informacijama, a i da u potpunosti preurede stranicu bez njenog brisanja. A nije potreban nikakav poseban programski dodatak. Ajax je samo dizajn koji kombinuje najbolja svojstva modernih pretraživača kako bi proizveo nešto što manje liči na web, a više na desktop. Neke od karakteristika Ajaxa uključuju:
Neisprekidan doživljaj: Tradicionalne web aplikacije vas primoravaju da podnesete obrazac, sačekate par sekundi, gledate kako se stranica menja, a onda dodate još neke informacije. Zaboravili ste da unesete pozivni broj pri unosu telefoskog broja? Počinjete sve iznova. Ponekad imate osećaj da ste usred saobraćajne gužve: pomerite se 20 metara, stojite minut, pomerite se 20 metara, stojite minut. . . Koliko je prodaja na Internetu izgubljeno jer se korisnik susreo sa previše poruka sa greškom i odustao? Ajax vam nudi iskustvo bez svega ovoga. Nema ponovnog učitavanja stranica – vi samo radite svoj posao, a pretraživač na to sam odgovara.
Ažuriranje u realnom vremenu: Ajax aplikacije mogu da ažuriraju stranicu u realnom vremenu. Danas nove informacije na webu preinačuju čitavu stranicu s vremena na vreme, jednom svakih 15 minuta. Nasuprot tome, pretraživač sa Ajax aplikacijom može da kontaktira server svakih 15 sekundi, što mu omogućava da vrši ažuriranje informacija direktno na delovima stranice koji trpe promene. Ostatak stranice ostaje nepromenjen.
Grafička interakcija: šarene pozadine su nešto čega na web-u ima dosta, ali je osnovni interakcioni režim rada ipak nalik na sisteme za unos podataka u stilu 1970-ih. Ajax predstavlja tranziciju u svet GUI kontrola koje se mogu videti na današnjim desktopovima. Shodno tome, srešćete se sa animacijama kao što su iščezavanje teksta koje vam govori da je nešto upravo snimljeno, moći ćete da vučete stavke po ekranu, videćete kako se statični tekst iznenada pretvara u polje za izmene ukoliko prelazite mišem preko njega.
Kako bi se sprečila bilo kakva konfuzija, sledeće stvari nisu karakteristike Ajaxa:
Vlasništvo: "Ajax" je verovatno jedno od najuobičajenijih brend imena u istoriji, ali u kontekstu web dizajna, Ajax nije ni naziv kompanije ni proizvoda. To čak nije ni ime standarda. To je oznaka za pristup u dizajnu koji uključuje nekoliko povezanih tehnologija.
Uslovljenost programskim dodacima: Ajax aplikacije ne zahtevaju da korisnici instaliraju programske dodatke za pretraživač ili desktop softver.
Specifičnost pretraživača: Ukoliko korisnik koristi relativno nov, savremeni pretraživač (od 2001. pa nadalje), aplikacija bi trebalo da radi. Aplikacije koje se zasnivaju na specifičnosti pretraživača u neku ruku osujećuju cilj Ajaxa.
Nedostaci Ajaxa
Ajax je skup prednosti i nedostataka. Svako ko želi da koristi Ajax, treba da bude svestan i sledećih nedostataka:
Limitirane mogućnosti: Neke Ajax aplikacije rade čuda o kojima se ranije samo sanjalo, ali ipak postoje i značajne restrikcije ove web platforme. Na primer: multimedijanle mogućnosti, lokalno skladištenje podataka, grafika u realnom vremenu, interakcija sa hardverom kao što su štampači i web kamere. Podrška za neke od njih je poboljšana u novijim pretraživačima, za neke je potrebo izabrati Flash, ali mnoge nije moguće koristiti, jer bi njihova upotreba isključila upotrebu Ajaxa.
Stepen performanse: Stalna interakcija između pretraživača i servera može dovesti do izuzetka odgovora od strane aplikacije. Međutim, postoji dosta dobro poznatih modela za optimizovanje performanse kao što je keširanje od strane pretraživača. Oni su dovoljni čak i za brze aplikacije kao što su one na berzi, ali može se desiti da Ajax ipak ne radi sa real-time aplikacijama kao što je upravljanje mašinom.
Neophodnosti pristupa Internetu: Korisnik ne može pristupiti Ajax aplikaciji bez internet konekcije.
Poznavanje drugog programskog jezika: Ozbiljnije Ajax aplikacije zahtevaju poznavanje Javascripta. Mnogi programeri otkrivaju da je Javascript jezik koji pruža mnogo više mogućnosti nego što se smatralo, ali ipak nameće se upotrba drugog jezika od strane servera.
Lakoća zloupotrebe: Kao i u slučajevima drugih moćnih tehnologija, Ajax koncepti se mogu zloupotrebiti od strane nepromišljenih programera. Primeri na ovom sajtu namenjeni su da provedu programere kroz korisne solucije, ali ostaje činjenica da se Ajax ne upotrebljava uvek na način koji podržava njegovu primenljivost.
Osnovne tehnike i tehnologije
Ajax aplikacije koriste kombinaciju sledećih tehnika, kao tehnologija sadržanih u svim modernim pretraživačima:
Odgovor na događaj od strane korisnika pomoću DHTML-a: Ajax aplikacije odgovaraju na događaje u pretraživaču, a DHTML omogućava da se akcije odašilju u skladu sa događajima, kao što je pritisak nekog tastera.
Dinamična reakcija pretraživača sa Javascriptom: Javascript se mnogo koristi da omogući dinamičnu reakciju nakon inicijalnog učitavanja stranice.
Promena displeja pomoću DOM-a (Document Object Model): moderni pretraživači prikazuju HTML kao strukturu podataka. Korišćenjem Javascripta za manipulaciju strukture, moguće je promeniti stranicu nakon njenog učitavanja. Na primer, moguće je promeniti tekst ili boju pozadine.
Redefinisanje događaja DOM-om ili Javascriptom: osluškivači događaja su takođe deo DOM-a, tako da Ajax aplikacija može da odgovori na jedan događaj uz mogućnost promene kada se desi neki drugi događaj.
Udaljeni pristup Web-u uz pomoć XMLHttp zahteva i okvira: Kako bi se omogućio neisprekidan doživljaj, Ajax aplikacije komuniciraju sa serverom bez podnošenja obrasca ili preinačenja stranice. Neke aplikacije su ranije koristile Frames (okvire) ili Iframes (I-okvire), ali većina Ajax aplikacija sada koristi XMLHttp zahtev, koji je i dizajniran u ove svrhe.
Programiranje podešavanjem funkcije Timeout: Pomoću mehanizama, kao što je Javascript set Timeout (podesi Timeout), Ajax aplikacije mogu da omoguće dešavanje akcija periodično ili u određeno vreme.
Prenos poruka pomoću XML-a: XML je popularan format za prenos poruka između klijenta i servera, pošto postoji jaka podrška za XML manipulaciju na obe strane.
Tok Ajax aplikacije
Tok Ajax aplikacije više liči na tradicionalnu GUI nego tradicionalnu Web aplikaciju, sa DOM objektima koji se ponašaju kao elementi GUI okruženja. Skript registruje osluškivače događaja na DOM objektima i manipuliše DOM-om odgovarajući na te događaje. U sklopu ciklusa u kome se događaji obrađuju, može se desiti da je server zauzet. Naime, problem ovde leži u tome što su pozivi serveru asinhroni, tako da je faza osluškivanja događaja odvojena od faze odgovora na te iste događaje.
Evo tipičnog toka Ajaxa u pretraživaču:
Poseta: Korisnik posećuje sajt na uobičajen način, klikom na link ili kucanje URL. -a.
Inicijalizacija: Stranica se učitava u svom prvobitnom obliku. Uspostavljaju se povratni pozivi zaduženi za unos od strane korisnika, a može se uspotaviti i petlja za stalno osvežavanje elemenata stranice.
Petlja događaja: događaj u pretraživaču, kao što je pritisak nekog tastera. - zahtev serveru – pretraživač šalje zahtev serveru - … server obrađuje događaj… - odgovor servera - trenutak kasnije, server odgovara, a odgovor se prenosi u povratnu funkciju zahteva, onu koja je specifikovana kada je zahtev poslat- ažuriranje pretraživača - povratna funkcija zahteva ažurira DOM, uključujući sve Javascript varijable, u skladu sa odgovorom.
Naravno, ima više varijanti. Konkretno, mnogi događaji se rešavaju lokalno, i ne putuju do servera. Takođe, neke Ajax aplikacije su kratke i interakcija pretraživača se završava korisnikovim podnošenjem obrasca. Druge su u interakciji sa korisnikom sve dok su u njegovom pretraživaču.
Zapazite da se događaj u pretraživaču i zahtev serveru dešavaju u jednoj niti, dok se odgovor od strane servera i ažuriranje pretraživača dešavaju u odvojenoj niti. Ovo je zbog asinhrone prirode zahteva serveru. Moguće je konfigurisati XMLHttp zahtev kako bi pozivi bili sinhronizovani, ali sa druge strane to zadržava korisnika.