Bogati korisnički interfejs u Web aplikacijama je postala normalna stvar koju korisnici očekuju. Pogledajte samo najnovije Google servise (Gmail, Google News 2, Google Suggest, Google Maps,…) i sve će vam biti jasno.

Upkros i dalje prisutnim razlikama između različitih browsera (da ne pričam o eventualnoj podršci za starije browsere) ipak mi se čini da je danas ovakve stvari mnogo lakše raditi danas nego ranije. XHTML za označavanje, CSS za ulešavanje i JavaScript uz pomoć koga se dobija korisniji interfejs, lakši za korišćenje. Nisam pristalica šljaštećih, letećih i kakvih sve ne JavaScript animacija ali pristup DOM-u je itekako korisan kada treba povezati malo komplikovanije formulare, rešiti se višestrukih izbora i slično.

Pojam Gmail-a, zaintersovao sam se za još jednu stvarčicu - XMLHTTPRequest, mogućost da bez ponovnog učitavanja cele stranice pošaljete HTTP POST ili GET zahtev i kao odgovor dobijete komad XML-a koje onda parsirate DOM-om ubacite na pravo mesto. Sve je mnogo čistije nego igranje sa gomilom IFRAME-ova što je jedna od alternativa.

Implementaciju XMLHTTPRequest-a je započeo Microsoft u Internet Exploreru kao posebna ActiveX kontrola, a zatim je sa sličnom sintaksom implementiran i kao objekat u Mozilla-inom Gecko engine-u. Problem je - ovo nikako ne radi u Operi. Opera u verziji 7.6 bi trebalo da sadrži implementaciju, ali opet mnogi su naučili na ovaj browser i izostavljanje podrške je nezgodno ako softver nije u nekakvoj beta fazi (poput Gmail-a).

Ipak, na ovoj adresi je moguće pronaći implementaciju namenjenu Operi, sa poprilično velikim restrikcijama, ali opet čistije nego da se radi o IFRAME-ovima. Pomenuti kod Andrew Gregory-ja koristi Java plugin i njene Input/Output funkcije kako bi komunicirao sa web serverom bez osvežavanja same stranice.

Kod sam neznatno modifikovao kako bih dodao podršku za UTF8 kodnu stranicu (iako još uvek postoje problemi sa Apple Safari browserom, koji ima neispravnu implementaciju XMLHTTPRequest-a i bezobzira na postavljenu kodnu stranicu, rezultat prima u ISO-8859-1 rasporedu) i upakovao sve u demo koji se nalazi na adresi: http://www.goranrakic.com/tmp/xmlhttprequest/demo.php. Voleo bih da primim što više različitih bug reporta, kao i ideje kako da rešim problem sa Safarijem na najoptimalniji način.

Kao što i na stranici samog demo-a stoji, najveći problem je što uprkos XMLHTTPRequest-a, ne dobijate ni X od XML-a jer implementacija za Operu ne sadrzi responseXML objekat. Što se mene tiče dok jednoga dana svi korisnici ne pređu na odlični Mozilla Firefox ja sam zadovoljan i sa PlainTextHTTPRequest-om.