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 [ ... ].