COMPLETE TUTORIAL SERIES

Dojo 1.17.3 Tutorial

A complete, production-focused guide for senior developers — AMD module system, OOP with declare, Dijit widgets, dgrid, async Deferred, pub/sub, i18n, the build system, and three capstone applications.

10
Phases
3
Capstone Apps
300+
Pages
100+
Code Examples
20
Exercises
Prerequisites
JavaScript ES5
Closures, prototypes, this, callbacks, array methods. Phase 0 covers these in Dojo context.
HTML & CSS
Box model, positioning, specificity. Dijit's theme system builds on these fundamentals.
Browser DevTools
Console, network tab, element inspector. Phase 0 covers Dojo-specific DevTools patterns.
Basic OOP concepts
Inheritance, encapsulation, interfaces. Phase 2 maps these directly to dojo/_base/declare.
Suggested Learning Paths

Choose the path that matches your immediate goal:

Full course Phase 0 → 1 → 2 → … → 9 → Capstone 1 → 2 → 3 → Appendix
Widgets fast-track Phase 0 → Phase 2 (declare) → Phase 4 (Dijit) → Capstone 1
Data grids Phase 3 (stores) → Phase 7 (dgrid) → Capstone 1 employee grid
Async / XHR Phase 5 (Deferred) → Phase 6 (pub/sub) → Capstone 2 polling engine
Legacy app rescue Appendix A.1 (top 20 gotchas) → Appendix A.2 (lifecycle card) → relevant phase
Core Phases
PHASE 0
JS & HTML Foundations
Closures, prototypes, IIFE, ES5 array methods, Dijit theme structure, DevTools for Dojo debugging
ClosuresPrototypeDevTools
✓ Complete — 10 sections, debug exercise
PHASE 1
AMD Module System
require(), define(), dojoConfig, loader plugins (text!, i18n!, domReady!), package config, lazy loading
AMDrequiredojoConfig
✓ Complete — 10 sections, 3-package demo
PHASE 2
OOP with declare
Single/multiple inheritance, C3 MRO, this.inherited(), widget lifecycle (8 hooks), _TemplatedMixin, reactive setters
declareMixinsLifecycle
✓ Complete — 11 sections, jQuery→Dijit case study
PHASE 3
DOM, Events & Data Binding
dojo/dom, dom-class, dom-style, dom-construct, dojo/on, handle groups, NodeList, dojo/store, dojo/Stateful
dojo/onstoreStateful
✓ Complete — 13 sections, live-filter demo
PHASE 4
Dijit Widget Library
20+ form widgets, BorderContainer, TabContainer, StackContainer, AccordionContainer, Dialog, Menu, Tooltip, theme system
DijitBorderContainerDialog
✓ Complete — 16 sections, full CRUD dashboard
PHASE 5
Async with Deferred
Deferred resolve/reject/progress, .then() chaining, .otherwise(), dojo/when, promise/all, dojo/request XHR, request/notify
DeferredXHRpromise/all
✓ Complete — 10 sections, retry exercise
PHASE 6
Pub/Sub with dojo/topic
publish/subscribe, own() cleanup, naming conventions, request/response pattern, state bus, 5-module refactor case study
topicEvent BusDecoupling
✓ Complete — 8 sections, bus diagrams
PHASE 7
dgrid Advanced Grid
OnDemandGrid, Selection, custom renderers, inline editor, tree, sort, pagination, dstore Trackable, filtering, bulk actions
dgriddstoreTrackable
✓ Complete — 12 sections, EmployeeGrid widget
PHASE 8
i18n & Accessibility
NLS bundles, root + FR/JA overrides, runtime locale switch, date/number formatting, ARIA, keyboard nav, WCAG 2.1 AA checklist
i18nARIAWCAG
✓ Complete — 11 sections, a11y audit script
PHASE 9
Build System & Optimization
Build profiles, 3-layer strategy, shrinksafe vs closure, CSS optimization, customBase, staticHasFeatures, internStrings, CDN vs local
BuildLayerscustomBase
✓ Complete — 11 sections, full 3-layer profile
Capstone Applications
Reference
APPENDIX
Reference & Cheat Sheets
Top 20 production gotchas · Widget lifecycle quick-reference card · 50+ AMD module cheat sheet · dojox module index · Dojo 1.x → modern migration table · Recommended tools
Gotchas Lifecycle Card AMD Cheat Sheet dojox Index Migration Guide
✓ Complete — 6 sections · 20 gotchas · 50+ modules listed
Get Dojo & JavaScript Insights

New Dojo tutorials and enterprise JS tips delivered to your inbox.