AJAX – hvað er málið?
Skrifað af Sigurður Axel Hannesson undir Tölvur & tækniPrenta | Senda færslu | 5 athugasemdir
Nú er skammstöfunin AJAX búin að vera í notkun í nokkurn tíma, æ fleiri stökkva um borð í lestina og lofa dýrðina, en aðrir líta málið öðrum augum. Persónulega er ég fremur efins um gagnsemi þessarar tækni, einkum þegar gallarnir eru dregnir fram í dagsins ljós. Fyrir mörgum kann AJAX að hljóma eins og splunkuný uppfinning, en þeir sem kanna málin til hlýtar vita að svo er ekki. AJAX (Asynchronous Javascript And XML) er tækni til að framleiða gagnvirkar vefsíður, þó án fullrar endurhleðslu eins og tíðkast hefur í gegnum tíðina. Uppistaða AJAX er ECMAScript mállýska, svo sem VBScript, Java- og JScript, sem og XmlHttpRequest hluturinn. XmlHttpRequest var framleitt af Microsoft á sínum tíma, og hefur verið í boði síðan frumútgáfa Internet Explorer 5.0 leit dagsins ljós (sem ActiveX hlutur). Það var í raun ekki fyrr en Mozilla fylgjendur bjuggu til stuðning við þessa tækni (og síðar fleiri, svo sem Opera og Safari) sem skammstöfunin hlaut einhvern byr undir vængi, og allir sem eitthvað vissu um vefþróun ákváðu að nýta sér þessa tækni, líkt og þegar skammstöfunin DHTML (Dynamic Hyper Text Markup Language) varð til, sem er í raun ekkert annað en Javascript eða sambærileg mállýska nýtt samhliða HTML og CSS. Ef þannig er litið á hlutina kemur greinilega í ljós að hér er ekki um annað að ræða en enn eitt tískuorðið, því tæknin sjálf er orðin nokkuð gömul (látum þroskann liggja á milli hluta að sinni).
Nú er hins vegar svo komið að jafnt reyndir sem óreyndir vefsmiðir eru ekki alveg með á nótunum, og allt sem áður hét einfaldlega JavaScript er orðið að AJAX í hugum þeirra. Fyrir smámunasama menn eins og mig er það gróf misnotkun á merkingu hugtaksins, einfaldlega vegna þess að AJAX != JavaScript. Til dæmis um þennan fremur algenga misskilning eru fyrirbæri eins og hreyfanlegir sem og aðrir virkir hlutir á vefsíðum. Allt er þetta framkvæmt á tölvum skoðenda, fremur en á vefþjóninum sem skilar gögnunum, og án nokkurra samskipta við vefþjóninn. Það er ekki fyrr en að gögn eru sótt til þjónsins og birt án þess að endurhlaða allri síðunni sem við erum farin að nýta AJAX. Raunar er það einnig mögulegt með Iframes, en þeir gera okkur þetta einnig kleyft, þó á umtalsvert frumstæðari og takmarkaðri máta.
En hvað um kosti og galla? Gagnvirknin fer ekki á milli mála; Við getum auðveldlega breytt eða eytt hlutum vefsíðu með tiltölulega stuttum fyrirspurnum til vefþjónsins og fengið til baka smáa skammta af upplýsingum, í stað þess að endurhlaða allri vefsíðunni í einu. Samhæfnin er einnig furðu góð, því sömu skipanirnar virka flestar nánast óbreyttar í hinum ýmsu vöfrum sem styðja XmlHttpRequest hlutinn á annað borð.
Gallarnir fara þó ekki leynt. Fyrst og fremst verður vafri notandans að styðja og nota JavaScript (Internet Explorer 6.0 og eldri þurfa einnig að hafa ActiveX og ActiveScript virkt). Einnig er viðbragðstími mikilvægur þáttur, því ef vefsmiðurinn sýnir ekki á einn eða annan hátt að verið sé að senda eða sækja upplýsingar er eins víst að notandinn snúi baki við vefsíðunni í þeirri trú að álag og/eða netsamband sé orðið of mikið. Svo ekki sé minnst á bókamerkin og „til baka„ hnappinn, en það er líklega á flestra vitorði að þetta á enga samleið. Mismunandi lausnir hafa þó verið þróaðar og reyndar í þessum málum, en illu heilli samsvarar árangurinn jafnan ekki vinnunni sem í verkið fer.
Sjálfur átti ég nýlega þátt í hönnun og forritun skoðanakönnunarvefs, en þar er nánast einvörðungu notast við AJAX í stað gamaldags form taga. Þetta gerir það að verkum að hver sá sem reynir að nota kerfið en hefur ekki nauðsynlegan stuðning í sínum vafra verður fyrir sárum vonbrigðum, því hann getur nánast engar upplýsingar vistað. En þar sem tíminn er dýrmætur verður ekki allt eins og best verður á kosið, eða hvað?
Þó gallarnir séu hvimleiðir, þá eru kostirnir vissulega ágætir. En til að búa svo um hnútana að sem flestir geti áfram nýtt sér sömu möguleika, þó á misjafnan hátt sé, þarf að skipuleggja hlutina vel og vandlega, og leggja allan sinn metnað í verkið.
7. febrúar 2006 kl. 10:20
Mjög fróðleg lesning! Hvað t.d. var talið að ávinningurinn af því að nota AJAX í skoðanakönnunarvefinn væri umfram „hefðbundnari„ aðferðir?
7. febrúar 2006 kl. 13:22
Einfaldara viðmót og flýta fyrir notendum. Í stað þess að vera með flókin form þar sem e. t. v. aðeins væri hægt að skrá einn (undir)spurningaflokk í einu, eða eina spurningu með X mörgum undirspurningum og Y svarmöguleikum, þá gátum við hnoðað þessu saman á þann hátt að líkist svolítið WYSIWYG umhverfi. Það er að sjálfsögðu gott og blessað, en að skilja hina algerlega útundan tekur langt út fyrir öll velsæmismörk.
Raunar væri hægt að nota sömu uppsetningu áfram með hefðbundnum FORM tögum, og stærsti munurinn væri sá að í hvert skipti sem breytingar væru gerðar, þyrfti að sækja alla síðuna aftur.
8. febrúar 2006 kl. 11:20
Þannig! S.s. svona branching og skip-patterns, t.d. ef ég svara Nei við spurningu nr 5 og get þá hoppað beint í nr 13 (sleppa 6 – 12) o.s.frv. Ég sé hvar það gæti komið sér vel, en svo mætti auðvitað skipta þessu „gáfulega„ á milli síð(n?)a í gamaldagsformum… en jú ég sé möguleikana núna
8. febrúar 2006 kl. 13:32
Tja, ekki „branching og skip-patterns„. Sú hugmynd kom seint fram (frá góðkunningja okkar beggja), en það hafði aldrei verið gert ráð fyrir slíku. Hins vegar höfum við blaðsíðuskiptingu, og þar er t. a. m. hægt að velja hve margar spurningar birtast í hverjum spurningaflokki fyrir sig.
En jú, vissulega myndi AJAX einfalda slíka notkun umtalsvert fyrir þátttakendur.
22. febrúar 2006 kl. 22:55
[...] Jæja, þá er víst óhætt að segja að ég sé genginn í þjónustu hins illa. Að gamni mínu bætti ég við AJAX stuðningi fyrir athugasemdir. Hvað græði ég á því? Alls ekki neitt! En þið, lesendur góðir? Tja, þið gætuð hugsanlega sparað ykkur niðurhal á fáeinum kílóbætum (þó allt þetta sé staðsett hér á Íslandi) þegar þið skráið athugasemdir. Hvernig? Ég mæli með að þið lesið færslu mína um AJAX til að fá frekari skýringar á því. Þetta er þó nokkuð vænt að því leytinu að ef af einhverjum ástæðum þið hafið gert JavaScript (og Active Scripting fyrir Internet Exploder notendur) óvirkt, eða þá að vafrinn einfaldlega styður það ekki, þá virkar gamla POST aðferðin ennþá. Já, og eitt enn! Ef þið smellið á sarp einhvers ársins, þá kemur upp listi af mánuðum þess árs, svo þið getið kafað örlítið dýpra. Þessi færsla hefur verið lesin 1 sinni [...]