BEDRIFTSTEKNOLOGI

Ajax vanskeliggjøres av ulik XML-håndtering

Hvordan oppnår du harmoni i forholdet til Ajax, spør Espen Dalløkken, utvikler i konsulentselskapet Bekk.

Harald BrombachHarald BrombachNyhetsleder
20. mars 2006 - 11:03

Espen Dalløkken som er senior GUI-utvikler i konsulentselskapet Bekk. Han forsøker i dette innlegget å svare på spørsmålet "Hvordan oppnår du harmoni i forholdet til Ajax?"

I den siste tiden har mange erklært sin kjærlighet til den nye teknikken AJAX (Asynchronus Javascript and XML). Rådene om hvordan organisasjoner skal forholde seg til den nye teknikken har vært enda flere. Kombinasjonen av XML og asynkrone HTTP kall fra klientside-kode skal være teknologien som igjen skal revolusjonere måten man lager ”rike” applikasjoner. Mange hevder dette er tilfelle.

Når forelskelsen går over

Den meget omtalte ”nettleser-krigen” dreide seg i stor grad om implementering av JavaScript, HTML og etter hvert også Cascading Stylesheets (CSS). Krigen ble avsluttet da de mest utbredte nettleserne fikk et minste felles multiplum som gjorde det enklere å utvikle løsninger som fungerer på alle disse nettleserne med samme kode. I dag finner man de største ulikhetene i implementeringen av CSS når man utvikler tradisjonelle løsninger.

I tiden etter krigens slutt har mange utviklet et kjærlighetsforhold til teknikken AJAX. Den første tiden i et forhold er alltid den beste, man er forelsket og alt er rosenrødt. Forelskelsen går etter hvert over og man begynner se den andre parten i forholdet på en ny måte.

Dagens nettlesere har de største ulikhetene i implementeringen når det gjelder XML-standarder. Dette gjelder dokument-objekt-modellen (DOM) og eXtensible stylesheets (XSL). Utviklere av applikasjoner kan ikke manipulere XML på samme måte i de ulike nettleserne.

Denne utfordringen fører til spenninger i forholdet til AJAX for mange utviklere. Partneren som tidligere var ufeilbarlig viser seg å være menneskelig med både positive og negative sider.

Bli lykkelig og kvitt deg med eksen

Hvorvidt man skal lykkes med et nytt forhold avhenger ofte av om man er villig til å legge fortiden bak seg. Blant annet må man forsøke å kvitte seg med gamle flammer som kan skape unødvendig spenning i et nytt forhold. Dersom du starter et nytt forhold, så må du først kvitte deg med eksen. Dette gjelder også for kjærlighetsforhold til AJAX. Eksen bør settes på dør inntil den er moden nok til å bli introdusert i forholdet.

Forskjeller fra ulike nettleser-leverandører i sine implementeringer av webstandarder har alltid skapt utfordringer for de som utvikler nettleser-baserte løsninger. Den senere tiden har forskjellene blitt mindre når det gjelder HTML og JavaScript, slik at dette ikke lengre er et stort problem.

AJAX metoden sier at man skal sende XML fra serversiden og la klienten håndtere XML-responsen. Dersom man ser dette på en tegning så er det lett å være enig i prinsippet. I praksis er det derimot enda enklere å være uenig i denne måten å bygge en løsning på. Dette fordi de ulike nettleserne varierer veldig i forhold til hvilken funksjonalitet de har valgt å bygge inn i nettleseren for å jobbe med XML. Hvordan kan man så bli kvitt gammel bagasje når man skal forsøke dyrke frem et nytt varig forhold?

Gjør eksen din til et helt vanlig objekt

Å bli kvitt gamle flammer kan være vanskelig for mange, en måte som fungerer er å se på sin eks som et helt vanlig objekt. Møter du eksen din på gaten så må du behandle han/henne på samme måte som alle andre.

Forholdet til AJAX vil bedre seg dersom du gjør om responsen til et vanlig objekt og ikke en X. Søkemotor-leverandøren Yahoo! har valgt en smart måte å komme seg rundt problemene med håndtering av XML på klienten. De sender ganske enkelt ikke noe XML tilbake til klienten og dermed unngår de problemstillingen ved å møte eksen.

Java Script Object Notation (JSON) er et av begrepene som har fått vind i seilene takket være AJAX. JSON er egentlig en beskrivelse på hvordan man kan utnytte en del av ECMA Script standarden for å opprette objekter basert på en streng. Denne teknikken gjør det mulig å sende objekter fra serverside kode til klientside kode uten problemer.

Yahoo!s webtjenester tilbyr JSON-strenger som et alternativt resultat format fra sine tjenester. Dette gjør at utviklere av applikasjoner kan bruke Yahoo!s webtjenester uten å måtte håndtere XML. Utviklerne får tilbake en streng som direkte evaluerer til Javascript-objekter, helt enkelt og uten problemer.

Din nye partner vil sette pris på din abstrahering av eksen. Du vil kunne fokusere på å ditt nye forhold og ikke bruke energi på å dekke over ekser. Når du fokuserer all energi på din nye partner så har dere alle muligheter til å dyrke frem et langvarig kjærlighetsforhold.

Storebror har jo et godt forhold til sin eks, hvorfor kan ikke jeg ha det? Du hører historier om folk som har gode forhold til sine ekser og tenker kanskje: hvorfor kan ikke jeg også ha et godt forhold til min eks? Når man ser på selskaper som har lykkelige samvær med eksen i AJAX så blir man fristet til å ta eksen med seg inn i sitt nye kjærlighetsforhold til AJAX. Men er det slik at de faktisk har et godt forhold til eksen?

Søkemotor- og programvare produsenten Google har tilsynelatende det. Dette er dog en sannhet med visse modifikasjoner. Google har nemlig innsett at håndtering av XML på klienten ikke er uten problemer. Derfor har de skrevet sitt eget rammeverk for håndtering av XML som ikke baserer seg på innebygde mekanismer i nettleseren.

Åpen kildekode-prosjektet Google-XSLT inneholder en egen XML-parser som støtter Xpath-spørringer og XSL-transformasjoner. Prosjektet er relativt nytt, men i den nærmeste fremtid vil det være mulig å benytte dette rammeverket dersom man ønsker det.

Gode forhold til ekser er mulig, men det er ofte noe som kan etableres etter at du og din partner er trygge på hverandre. I tillegg må både du og eksen være modne nok til å kunne ha et vennskaplig forhold. Derfor kan det være lurt å ta tiden til hjelp dersom du ønsker å ha et godt forhold til eksen.

Et solid forhold bygges stein for stein

Kjærligheten til AJAX blomstrer som aldri før i disse dager, men hvordan skal vi klare å bygge videre på forelskelsen, og gjøre den om til et langvarig forhold?

Utviklere som er i en tilstand av blind kjærlighet til AJAX ønsker gjerne å gå direkte til ekteskap uten noe mer mellomspill. Denne tilnærmingen kan føre til store skuffelser den dagen man våkner og begynner å se små sprekker i den tidligere herlige fasaden.

Mange av de som uttaler seg om AJAX virker å være i fasen hvor man er vilt forelsket i sin nye partner, og hevder at man kun etter kort tid kommer vi til å lage alle applikasjoner basert på AJAX. De mer skeptiske påpeker at man forsøkte seg på dette allerede tidlig i Internetts historie. Man sluttet imidlertid å lage disse fordi mangelen på gode utviklerverktøy gjorde arbeidet svært ineffektivt. I tillegg var det mangel på gode verktøy for feilsøking. Disse to faktorene er ikke endret i særlig grad i dag. Mozilla-nettleserne kan benytte seg av Wenkman’s JavaScript Debugger, og i andre nettlesere må man i stor grad ordne støtte for feilsøking selv.

Mange maner til forsiktighet, og at man i stedet bør bruke AJAX kun på enkelte deler av en applikasjon. Et godt eksempel er Googles Suggest-tjeneste, som benytter AJAX for å tilby rikere funksjonalitet for en liten del av applikasjonen. En forsiktig og nøktern tilnærming til AJAX vil berede grunnen for et varig forhold.

Oppskriften på et lang og lykkelig samliv med AJAX

3 råd for å hindre at du sitter med en ekkel smak i munnen når du utvikler din første løsning med AJAX metoden:

  1. Forsøk å minimalisere håndtering av XML i på klientsiden, og bruk heller alternative formater som JSON inntil de ulike nettleserne håndterer XML likt.
  2. Utvikle komponenter og ikke applikasjoner dersom det er mulig.
  3. Har man en løsning som krever en såkalt "rik brukeropplevelse" bør man også se på alternativer, som for eksempel Flash.

Disse enkle reglene vil gjøre at det som nå er en het og heftig forelskelse vil utvikle seg til et forhold som vil gro til noe fantastisk. Lykke til!

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.