Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by jcn at 13:05 on Monday 11 December    Add 'Dojo: voor het maken van ‘responsive web applications’' site to delicious  Add 'Dojo: voor het maken van ‘responsive web applications’' site to technorati  Add 'Dojo: voor het maken van ‘responsive web applications’' site to digg  Add 'Dojo: voor het maken van ‘responsive web applications’' site to dzone

Op de Javapolis presenteert Alex Russel, de huidige voorzitter van de Dojo foundation, alle ins en outs van de Dojo toolkit.

Dojo is een open-source JavaScript toolkit die bedoeld is voor het maken van ‘responsive web applications’. Natuurlijk maakt Dojo gebruik van AJAX-technologie, maar dan gegoten in een bruikbaar framework, met event handling, server side messaging, allerlei widgets, etc. Belangrijk is dat je zelf ook relatief eenvoudig custom widgets kunt maken met Dojo, door gebruik te maken van templates.

JavaScript is not a bug

Zoals altijd moet ook bij het gebruik van JavaScript afwegingen gemaakt worden. In dit geval is dat onder andere dat het langer duurt voordat de web pagina beschikbaar is, omdat allerlei JavaScript code geladen moet worden. Dit gebeurt meestal synchroon. Daar staat een grotere flexibiliteit tegenover nadat de pagina is geladen.

De Dojo toolkit is opgebouwd in een aantal lagen:
-package system (bootstrap)
-language utilities
-event system
-ui utilities
-widget system
-custom widgets

Layers of dojo.jpg

Het dojo package system is bijvoorbeeld belangrijk bij de optimalisatie van een Dojo gebaseerde applicatie. Je kunt bijvoorbeeld zelf een custom-build van de dojo toolkit maken, waarbij alle veel gebruikte modules in een grote javascript file komen, die weer gecached kan worden (of geladen vanuit een ander domein via cross-domain dojo). Minder gebruikte modules kunnen altijd nog runtime worden ge-include met dojo.require().

De language utilities bevatten een ‘genormaliseerde API’ van javascript functies die verschillen over de verschillende browsers. Al deze methoden zijn te vinden in de dojo.lang package. Belangrijke functies hierbij zijn onder andere: dojo.lang.hitch, dojo.lang.forEach, dojo.lang.extend, dojo.lang.setTimeout, dojo.lang.curry.

Het dojo event systeem is runtime AOP voor javascript, met before, after en around advice. Elke functie kan worden ge-notified als een andere functie wordt aangeroepen. Hiervoor is de dojo.lang.connect() methode beschikbaar. Zowel de source als target hiervan kunnen ook DOM-nodes zijn, zodat je het onclick event van een object aan een methode van een willekeurig ander object kunt koppelen. Voor de liefhebbers: ook de memory leaks in events in Internet Explorer 6 zijn opgelost in dojo.lang.connect().

Ajax-functionaliteit is te vinden in de dojo.io.bind() methode. Het zorgt voor text encoding, de codering van URI componenten, submitten van het forms, en kent een pluggable back-end.

Enkele standaard dojo-widgets zijn de rich text editor, content pane, split panel, tabs, fisheye list, een sorteerbare / filterbare tabel, Yahoo en Google maps, tree, en een dialog / wizard. Bijna alle dojo-widgets kennen een automatische fallback indien javascript niet beschikbaar is. Natuurlijk is het mogelijk om zelf ook widgets te maken. Dit is uitgewerkt in de sessie over ‘Dojo and Faces’.


© 2019 Java Competence Network. All Rights Reserved.