[ noviKorisnik @ 28.08.2006. 18:12 ] @
Koristim FF i ekstenziju FireBug - jako zgodan alat za web developere.

Međutim, izgleda da ova ekstenzija stvara konflikt Ajax funkcijama na ES.

Ova GreaseMonkey ide u pravcu da prevaziđe taj konflikt.

Status je otvoren pošto ostaje problem s globalnim promenljivama koje se pozivaju u funkcijama koje rade s Ajaxom, a to se nalovi kad se naiđe na grešku.

Pa ako koristite FireBug, a volite ES i Ajax na njemu, instalirajte ovu skripticu da nalovimo koje Ajax funkcionalnosti još uvek ne rade ... pa da se i to sredi.

Sledi spisak funkcionalnosti koje bi trebalo da rade ispravno:

* "Brza izmena" poruke na stranici teme.
* Izmena naslova cele teme (moderatorska funkcija - dvoklik na ćeliju s naslovom u listingu foruma)
* Generisanje liste Sličnih tema pri otvaranju nove teme
* Generisanje liste fajlova za upload pri uploadu fajlova uz poruku
* Generisanje liste srodnih tema



Korisnička skripta je prikačena uz ovu poruku.

Molim prijavite Ajax funkcionalnosti koje ste testirali da rade, a naročito one koje ne rade :-)






[Ovu poruku je menjao noviKorisnik dana 28.08.2006. u 19:32 GMT+1]
[ noviKorisnik @ 28.08.2006. 18:14 ] @
Evo, skripta je prikačena uz vodeću poruku ... radi i Ajax pri uploadu fajlova ...

Nego ... hajde malo da pričamo ovde ... pa forum je :-) - da li koristite FireBug, GreaseMonkey, FireFox - kakva su vam iskustva u korištenju i tako to ?

[Ovu poruku je menjao noviKorisnik dana 28.08.2006. u 19:27 GMT+1]
[ Gojko Vujovic @ 28.08.2006. 19:00 ] @
Nisu mi baš jasne te third party extenzije i zašto zbog njih prestaje da radi ajax na esu. Da li je nešto trebalo drugačije pisati na esu, da li se to dešava i sa drugim sajtovima, ili... ?
[ noviKorisnik @ 28.08.2006. 20:54 ] @
Evo, gledam recimo na flickru - kada dodajem fotku u galeriju neke grupe - učita listu grupa, javi da je dodao fotku u galeriju - ali ne osveži listu galerija u kojima je fotka. Ovo se ne dešava kad je Firebug isključen.

...

Generalno, rešenje je u pisanju kvalitetnijeg koda (ovaj primer s flickrom to ilustruje - veći deo procesa dodavanja su lepo zaokružili, ali i njima se dešavaju brlje :-).

- najjednostavnije - izbegavanje korištenja globalnih promenljivih u funkcijama. Sve promenljive treba da su lokalne ili parametri. Ako neka parametarska vrednost treba da se menja - prosledi se objekat pa mu se menja šta već treba.

...

Što se tiče Ajaxa na ES - dodatni problem može da izazove konkurentno izvršavanje xmlhttprequesta - ako se inicira nova akcija dok prethodna još nije završina, menja se referenca na promenljivu xmlhttp koju callback funkcije pozivaju ... (pitanje je i šta se dešava s instancom prvog poziva, da li se ubija objekat i tako ostaje bez callbacka ili ostaje kao bezimeni i poziva na response svoj onreadystatechange gde se funkcija izvršava s pogrešnom referencom...)

...

Konkretno u vezi ove skripte, inicijalni problem je što se dodela

xmlhttp.onreadystatechange = ...

vrši na globalne funkcije, a opet se u njima referencira xmlhttp globalno.

Slično je i s drugim promenjivama koje se koriste, a interesantno je da nije prolazila ni referenca document.forms [ ... ].
[ mist @ 28.08.2006. 21:28 ] @

Citat:

Što se tiče Ajaxa na ES - dodatni problem može da izazove konkurentno izvršavanje xmlhttprequesta - ako se inicira nova akcija dok prethodna još nije završina, menja se referenca na promenljivu xmlhttp koju callback funkcije pozivaju ... (pitanje je i šta se dešava s instancom prvog poziva, da li se ubija objekat i tako ostaje bez callbacka ili ostaje kao bezimeni i poziva na response svoj onreadystatechange gde se funkcija izvršava s pogrešnom referencom...)



Good practice u Ajaxu je da se onemoguci interakcija korisnika sa ostatkom web strane kada je u toku jedan xmlhttprequest. Ja za Ajax koristim biblioteku xajax.

Vidite na: http://www.xajaxproject.org/ i na http://wiki.xajaxproject.org/

Neko od korisnika ove biblioteke je napravio modifikaciju koja u trenutku izvrsavanja xmlhttprequesta nacrta jedan div preko cele strane i bluruje ostatak strane tako da je nemoguca bilo koja dalja interakcija sa ostatkom strane. Takodje, na centru strane nacrta pravougaonik u kome je "Loading..." i mali tockic koji se vrti. Naravno, ovaj div i taj pravougaonik mogu da se prilagode layoutu sajta, tako da to jako dobro izgleda.
E ja sam taj mod odradio na jednoj od prvih verzija biblioteke, nije iskljuceno da su oni to implementirali u nekoj od novijih verzija. Stalno se razvija i jako je dobra biblioteka, preporucujem od sveg srca.

[ noviKorisnik @ 28.08.2006. 22:09 ] @
Nije nužno da ajax zahtevi moraju da se odvijaju sekvencijalno ... događaji mogu biti i potpuno nezavisni.

Koristim prototype - tamo postoji jedan objekat koji se zove Ajax (logično :-) koji čuva sve aktivne zahteve u nizu ...
[ noviKorisnik @ 19.10.2006. 10:16 ] @
hm, evo da prikačim modifikaciju da firebug i ajax mogu da ferceraju i na elitemadzone ...