Choose your language:

Hong Kong
New Zealand
United Kingdom
United States

Hands-On Dojo Toolkit Development

Course Code



4 Days

Required: Strong OO Skills, HTML, and JavaScript Language Fundamentals (such as DOM and event handling concepts)
Highly Recommended: CSS Fundamentals
Recommended: XML Principles
This course provides a firm understanding of the Dojo JavaScript Library. It assumes strong prior knowledge of modern JavaScript principles. The course provides hands-on exposure to working with numerous widgets within the Dojo library. It explores the creation of custom widgets, the lifecycle of widgets, and best practice coding techniques for creating widgets under the Dojo 1.9 library. The course also examines the current dynamic loading mechanism, AMD, as well as the core features of the library. The course looks at how to utilize the powerful dojo/request features to implement Ajax or JSONP forms of asynchronous calls. It provides an opportunity to create with the numerous UI widgets and utilizes data stores to configure data for widgets such as the DataGrid and the newer modular addon, the DGrid. It features a look at how to use many of the remaining APIs within Dojo including the inheritance mechanisms, drag-and-drop, animation and effects, and data type manipulation features such as strings, arrays, and dojo/router, using Observables, and much more.

Note: This course is based on version 1.9.
Primary audience: Front-End Developers, Server-side Engineers seeking to improve their Dojo skills
Secondary: Designers, middle-tier developers and others interested in learning the Dojo framework
Upon completion of this course, participants will be able to:
  • Successfully implement the Dojo JavaScript framework within front-end solutions
  • Utilize various Dojo core APIs and asynchronous techniques (XHR, script tags, CORS)
  • Extend and customize Dijit widgets, use and modify themes
  • Dynamically load modules
  • Create responsive solutions using Dojo to target multiple devices
  • Explore the Dojox widgets, additional features
Up and Running with Dojo
Dojo Overview: Base, Core, Dijit, Dojox
Working with Dojo
Dojo with NodeJS
The Dojo Namespaces
Setting up Dojo
Dynamic Module Loading: AMD
Modularizing Code
Understanding Themes
Introducing Dojo Widgets
The Dojo Event Model
AJAX the Dojo Way
Using Firebug & Chrome/IE Developer Tools with Dojo
Debugging Dojo Apps

More with Core Dojo Features: Events and DOM
Using Dojo to improve DOM Handling
Using dojo.query()
Managing Resources on Page Loads/Unloads
The Dojo Event Object
Events across browsers
Browser Detection
Managing resources with dojo.own()

Introducing Dijit with Forms and Containers
Creating Containers
Using BorderContainers
Working with TabContainers
Working with Dojo's Template Engines
DTL (Django Template Language)
Templates with _TemplatedMixins
Using dojo/text!
Working with Forms
Form Widgets
Textbox and Validation Widgets
Buttons and FilteringSelects
Form validation
Number/Date/Currency Formatting
Using Date and Currency Widgets

Dojo and Ajax
Introducing Dojo and Ajax
Using dojo/request
Controlling response data
JSON Formatted Data
Handling Errors
Passing Parameters
Cross Domain Solutions using Dojo
What are promises?
Incorporating Deferreds

More Dijit: Dojo Widgets
The Application Controller
Using Dialogs
More with Layout Widgets
ContentPanes, AccordionContainers
Menus, MenuBars
Examining App Changes with dojo/router

Customizing Widgets
Programmatic vs. Declarative Widgets
Creating Custom Widgets
Using _WidgetBase
The Widget LifeCycle
Using Extension Points
Using AttachEvent and AttachPoints
Widgets and Namespaces
Custom Widgets through Markup (Templated Widgets)
Programmatic Widget Creation

Advanced Widgets and Widget Communication
Working with Trees and Grids
Sorting and Filtering Grids
Using DataStores
Understanding Observables
Dojo Charting
Examining the DGrid
Topics and Pub/Sub

Core Dojo: Effects & Animation
dojo.fx Module
Common Effects: Wipes and Fades
Handling Events
Drag-and-Drop Example

Dojo and Architecture
Dojo and Accessibility
Dojo i18n Support
Using Locales
HTML5 Support
Dojo MVC
A Look at dojox Mobile
Dojo 2.0
Send Us a Message
Choose one