Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Tilbake til start (Read with Google translator)


Yepp, Dojo. Snakk om snodig navn ? Dette er en bloggpost for de teknofile.

Er på ferie på hytta, men når mørket senker seg og unga har lagt seg, kommer lesebrillene fram på nesen og fagbøkene opp av ryggsekken. Bruker mye av min tid til å lære meg dojo.

Dojo er et svært sofistikert toolkit for klientbaserte web applikasjoner. Også kjent som Rich Internet Applications.

I tillegg til å være fullt av funksjoner, widgets og annet snask, så er det bygget opp som et modulbasert toolkit, med et modulsystem ala java's import statements. Det gjør at kun de delene av toolkit filene som er nødvendig pr. applikasjon blir lest inn til klienten. Og vi snakker her om rike klienter, og da vil dojo koden bli utført på klienten og ikke på serveren. Dette åpner for en helt ny type applikasjoner.

Demoside kan du se her : http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/themeTester.html

Dojo er ikke lett, det er helt sikkert, men når man kommer over den første terskelen, så begynner moroa. I starten virker alt bare forvirrende, snodig og ikke helt intuitivt.

På jobben har jeg slitt med å få på plass en applikasjon som består av flere visuelle biter som igjen settes sammen i en større applikasjon. Denne er bygges slik at flere html-fragmenter (med javascript inkludert i htmlfilen) lese inn dynamisk og ved behov. Dette er faktisk ganske så enkelt, og fungerer flott, men html-fagmentene leses inn i samme globale javascript space. Dette medfører at DOM id'er og variabler deles på tvers av alle moduler (eller fragmenter). Og etter hvert som mengden moduler øker, så øker sjansen for at variabler og id'er kolliderer på tvers av moduler. Dette trenger ikke være noe problem i småskalaapplikasjoner, men ved større skala, så vil dette medføre et problem før eller siden. Hvis man f.eks trenger flere instanser av HTML-fragmentet, er man i trøbbel.

Derfor har Dojo Dijit Widgets. Jeg har nå sittet et par kvelder og studert dojo.dijits og det er faktisk ikke så himla vanskelig å få de til, for Dojo (og Javascript) er objektorientert. Dermed er all standardkode allerede implementert, og man bare plugger og modifiserer (utvider) de delen som man trenger for å lage sin egen Widget. Og måten Widgets er konstruert, så blir alle variabler og funksjoner beskyttet av Widget'en. Også Id'er forvaltes av Widgeten. Og flere instanser er ikke noe problem.

Det er dog ikke helt enkelt, for man må holde styr på scopes, XHR, templates osv. En rask måte å komme i gang på er å lese http://eduzine.edujini-labs.com/archives/32-Creating-Custom-Widget-in-Dojo-Part-1.html og http://eduzine.edujini-labs.com/archives/33-Creating-Custom-Widget-in-Dojo-Part-2-Templated-Widgets.html

Så nå er jeg i gang og forfiner HTML-fragmentene mine til ekte dojo dijit Widgets.

Kunnskap er nøkkelen, er mitt motto.