This course enables delegates to write AJAX enabled web applications using the Dojo framework. All aspects of Dojo are covered, including the core utility functions, selecting nodes based on CSS selectors, working with NodeList objects, adding and modifying nodes in the DOM tree, performing XHR requests and introducing animations.

The standard Dijit widgets are also covered, with an emphasis on building rich user interfaces that interact with REST’ful Web Services via JSON. By default the server side code is implemented in JEE using the Jackson JSON processor.


JavaScript Essentials for Java/C# Developers

  • Basic JavaScript syntax and type system
  • The equivalence of objects and hashes
  • Using protoypes for object inheritance
  • Creating named and anonymous functions
  • The context within which a function executes
  • Creating and manipulating arrays of objects
  • Using RegExp objects for pattern matching
  • Debugging and profiling JavaScript using Firebug
  • Serializing JavaScript data structures via JSON
  • Creating and consuming JSON in Java with Jackson

Introduction to the Dojo Framework

  • Limitations of using JavaScript across browsers
  • Popular cross-platform JavaScript frameworks
  • The organization of the Dojo toolkit
  • Including Dojo in your web application
  • Options for error handling in Dojo

Performing Basic Tasks with Dojo

  • Customizing the framework using djConfig
  • Selecting nodes from the DOM tree using query and byId
  • Building and adding nodes to the tree with create and place
  • Detecting, adding and removing CSS classes on DOM nodes
  • JSON serialization in Dojo with toJson and fromJson
  • Processing data from XML documents in Dojo
  • Using hitch to bind methods to contexts
  • Iterating over arrays with forEach, map, some and every
  • Defining classes using declare and extend
  • Introducing the Dojo Objective Harness (DOH)
  • Writing unit and performance tests using DOH
  • Automating UI based tests using DOH Robot

Event Handling with Dojo

  • Scheduling functions to run on startup with addOnLoad
  • Attaching handlers to DOM nodes and working with events
  • Controlling the propogation and processing of events
  • Using connect to handle user defined events
  • Dojo’s support for the publish-subscribe pattern and topics
  • Registering callbacks for asynchronous functions with dojo.Deferred

Using Dojo for Asynchronous Requests

  • Sending requests with xhrGet, xhrPost, xhrPut and xhrDelete
  • Processing content using the handleAs, load and handle properties
  • Using dojo.io.script to call JSONP services in other domains
  • Understanding the dojo.data specifications for working with data providers
  • Using the dojo.data drivers bundled with Dojo to access remote services
  • Displaying data from drivers using JavaScript functions and Dijit widgets

The Dojo Build System

  • The module pattern and its use in the Dojo framework
  • How dojo.require implements the module pattern
  • The standard and cross-domain loaders supplied with Dojo
  • Support for publishing releases of Dojo based applications
  • Packaging and compressing your application for deployment

Using the Dijit Widgets

  • Adding Dijit widgets to HTML elements declaratively
  • Programatically adding and configuring widgets
  • Attaching handlers to the extension points of widgets
  • Using widgets to enhance and validate HTML forms
  • Displaying data in tables, trees and editors
  • Changing the look and feel of widgets
  • Creating and extending widgets


The course assumes delegates are experienced in server-side programming using either JEE or .NET. To get the most benefit from the course delegates should also have basic JavaScript programming experience and knowledge of the core concepts of AJAX and REST.