Pošto ljudi, generalno, ne vole baš mnogo nove stvari, bar ne vole da ih probaju na svojoj koži, trebalo je dosta vremena da prođe od pojave IE5.0 koji je prvi ponudio mogućnost korišćenja ajax-a do toga da široke web developerske mase počnu da koriste isti.
Poslednjih meseci na svim iole posećenijim forumima ili blogovima ljudi koji se bave web developing-om, skoro svaka druga napisana reč je ajax. Naravno kao i u svakoj priči, postoje ljudi koji se oduševljavaju, i oni koji na sve gledaju sa rezervom, zatim oni koji pljuju ove prve, i neki sasvim treći koji uzvraćaju , braneći prve...
Sve u svemu mnogo se priča o ovome. I mislim da je to dobro.
Kao i posle svake revolucije , web developeri će , ukoliko uvide dobre strane ajax-a, početi da ga upotrebljavaju u svim situacijama. Gde je to moguće i gde je nemoguće, gde je potrebno i gde nije potrebno. Bar je tako do sada bilo sa svim novim stvarima.
Ono što mene lično nervira u ovakvim situacijama, je to što će , iako se zna u ovakvoj klijent-server (web browser – web server) arhitekturi šta treba da budu odgovornosti klijenta, a šta servera da nastane totalna zbrka, u kojoj se ne zna ko šta radi. Kad kažem „da se znaju odgovornosti“, naravno da mislim na postojeće design pattern-e. Kad kažem da će “da nastane zbrka”, naravno da mislim na to da će mnogi ponovo da izmišljaju toplu vodu, i da neće uspeti da je izmisle.
Posledica toga će biti da će više od pola započetih projekata (web aplikacija) opet da propadne, pola ostatka da se završi sa gomilom bug-ova i probijenim terminima, pola preostalog dela ostatka da se završi „uspešno” ... naravno , ne kažem da je do sada situacija u softverskom poslu bila bolja što se izvršenja zadataka tiče, već da to da je spisak tehničkih razloga za propadanje sw projekata verovatno dobio još jednog velikog člana.
Šta je u stvari problem?
Pa problem je u tome kako naći pravu meru izmedju dve krajnosti. Između toga da se sve dešava na serveru (klijent samo prikazuje od jednom dobijeni sadržaj) i toga da je klijent toliko pametan da zna šta mu treba i kada mu to treba i da se u tim situacijama obrati serveru i zatraži to od njega.
Prva varijanta je ona od koje se krenulo. Ona koja se koristila na početku web priče. Vremenom su se odredjene odgovornosti prebacivale na stranu klijenta. JavaScript je postao idealna stvar za skoro svaku vrstu validacije, kao i za druge klijentske poslove vezane za prikaz sadržaja. Ubrzani rast sposobnosti klijentske strane da obradjuje podatke, vrši validacije, prikazuje podatke, vuče web priču ka gore pomenutoj , drugoj varijanti.
Druga varijanta na prvu loptu zvuči super, ali se u njoj krije dosta toga.
Prvo, ne možete biti sigurni da svaki browser podržava vaš pametni klijentski kood iz onog ili ovog razloga, i drugo, bitnije, je to što ovakav pristup može da dovede do narušavanja osnovnih principa klijent-server arhitekture i da bude uvod u propast.
Showing posts with label ajax. Show all posts
Showing posts with label ajax. Show all posts
Saturday, March 04, 2006
Saturday, January 28, 2006
ajax revolucija!
Mnogo prašine se diglo oko stvari zvane AJAX u poslednje vreme. Na žalost ljubitelja fudbalskog kluba iz Amsterdama, ne ponavlja se uspešna serija njihovih ljubimaca iz 60ih i 70ih godina prošlog veka kada su harali evropom na čelu sa našim Veliborom Vasovićem. Iako google na reč "ajax" odgovara sa http://www.ajax.nl/ na prvom mestu, jedan drugi ajax opasno preti da potisne holandjane.
Ja lično ne volim mnogo nove reči, tj. ne volim kad ljudi olako daju imena stvarima. Na pitanje drugara "šta je to ajax?" od pre par meseci sam naravno odgovorio sa FC, iako sam pretpostavio da su opet smislili novo ime za staru stvar. I naravno da sam bio u pravu. Ali ovoga puta je to bilo malo drugačije.
Ovaj AJAX je akronim od Asinhroni JavaScript i XML (Asynchronous JavaScript and XML). U stvari to je tehnika kojom se HTML strana koja se nalazi u browseru može osvežiti novim podacima bez osvežavanja cele strane. Ništa novo, rekli bi neki (da li su u pravu!?).
Ovo je moguće ostvariti na dva načina. Prvi je umetanjem u HTML stranu nevidljivog iframe taga u kome bi bila odredjena stranica koja bi se osvežavala posle određenog vremena, i koja bi na onLoad događaj pozivala neku JavaScript funkciju koja bi mogla nešto pametno da uradi. Svako ko se razume u web programiranje zna da ono što sam napisao u rečenici iznad iako zvuči prosto i nije baš tako lako izvodljivo.
Druga varijanta je u stvari i ona prava.
Ona se svodi na korišćenje XMLHttpRequest objekta.
Ovaj objekat je po prvi put video svetlo dana kao ActiveX kontrola u verziji 5.0. Microsoft Internet Explorer-a. Veoma brzo, pošto su uočene izvanredne mogućnosti i ostali browser-i dobijaju podršku za njega.
Trenutno XMLHttpRequest podržavaju svi aktuelni browser-i, bar u novijim verzijama.
E sad, pitanje je šta je to toliko pametno, važno, dobro, loše, kako god hoćete, vezano za taj XMLHttpRequest? I zašto su ljudi koji se ne razumeju u fudbal od jednom počeli toliko da pričaju o ajaxu?
Odgovor je, naravno, svima koji su ikada napisali (ili napravili ako više volite) par html strana koje se generišu na serveru pomoću asp-a, php-a, jsp-a ili čega već, jako prost.
Mene interesuje samo jedna stvar. Zašto tek sad?!!!
Zašto nešto tako očigledno korisno nije ranije uvedeno u web priču?
Pa, odgovor je opet vrlo prost. Moralo je da se desi nešto veliko. To "nešto veliko" je google !!!
Google je medju prvima u svim svojim servisima počeo da koristi ajax.
Da li zbog toga što je to nešto "novo i fancy"? Sumnjam.
LJudi su, jednostavno, uvideli (kao što mnogi sada uvidjaju) da je, ukoliko želite da sa serverom razmenite malu količinu podataka dovoljno da pošaljete zahtev za tim podacima i dobijete ih, bez ponovnog generisanja kilobajta i kilobajta HTML kooda koji je već na klijentskoj strani.
Znači standardna priča. Mora neko da bude prvi.
Ja lično ne volim mnogo nove reči, tj. ne volim kad ljudi olako daju imena stvarima. Na pitanje drugara "šta je to ajax?" od pre par meseci sam naravno odgovorio sa FC, iako sam pretpostavio da su opet smislili novo ime za staru stvar. I naravno da sam bio u pravu. Ali ovoga puta je to bilo malo drugačije.
Ovaj AJAX je akronim od Asinhroni JavaScript i XML (Asynchronous JavaScript and XML). U stvari to je tehnika kojom se HTML strana koja se nalazi u browseru može osvežiti novim podacima bez osvežavanja cele strane. Ništa novo, rekli bi neki (da li su u pravu!?).
Ovo je moguće ostvariti na dva načina. Prvi je umetanjem u HTML stranu nevidljivog iframe taga u kome bi bila odredjena stranica koja bi se osvežavala posle određenog vremena, i koja bi na onLoad događaj pozivala neku JavaScript funkciju koja bi mogla nešto pametno da uradi. Svako ko se razume u web programiranje zna da ono što sam napisao u rečenici iznad iako zvuči prosto i nije baš tako lako izvodljivo.
Druga varijanta je u stvari i ona prava.
Ona se svodi na korišćenje XMLHttpRequest objekta.
Ovaj objekat je po prvi put video svetlo dana kao ActiveX kontrola u verziji 5.0. Microsoft Internet Explorer-a. Veoma brzo, pošto su uočene izvanredne mogućnosti i ostali browser-i dobijaju podršku za njega.
Trenutno XMLHttpRequest podržavaju svi aktuelni browser-i, bar u novijim verzijama.
E sad, pitanje je šta je to toliko pametno, važno, dobro, loše, kako god hoćete, vezano za taj XMLHttpRequest? I zašto su ljudi koji se ne razumeju u fudbal od jednom počeli toliko da pričaju o ajaxu?
Odgovor je, naravno, svima koji su ikada napisali (ili napravili ako više volite) par html strana koje se generišu na serveru pomoću asp-a, php-a, jsp-a ili čega već, jako prost.
Mene interesuje samo jedna stvar. Zašto tek sad?!!!
Zašto nešto tako očigledno korisno nije ranije uvedeno u web priču?
Pa, odgovor je opet vrlo prost. Moralo je da se desi nešto veliko. To "nešto veliko" je google !!!
Google je medju prvima u svim svojim servisima počeo da koristi ajax.
Da li zbog toga što je to nešto "novo i fancy"? Sumnjam.
LJudi su, jednostavno, uvideli (kao što mnogi sada uvidjaju) da je, ukoliko želite da sa serverom razmenite malu količinu podataka dovoljno da pošaljete zahtev za tim podacima i dobijete ih, bez ponovnog generisanja kilobajta i kilobajta HTML kooda koji je već na klijentskoj strani.
Znači standardna priča. Mora neko da bude prvi.
Subscribe to:
Posts (Atom)