I find that the book contains mostly beginner and intermediate information. Not enough advanced topics or talking about creation the programmatic way. The layout of the book is a bit odd (Drag and Drop is only talked about for a few pages within the context of working with the Tree widget). For more advanced developers looking for more of a reference book, consider looking elsewhere.
Author(s): Craig Riecke, Rawld Gill, Alex Russell
Series: Pragmatic Programmers
Edition: 1
Publisher: Pragmatic Bookshelf
Year: 2008
Language: English
Pages: 546
Contents......Page 6
Introduction......Page 10
Key Aspects of Dojo......Page 13
Using the Book......Page 16
Acknowledgments......Page 18
Ajax the Dojo Way......Page 20
Powerful Web Forms Made Easy......Page 21
Installing Dojo on Your Own Server......Page 22
Adding Dojo and Dijit to a Page......Page 23
Laying Out the Form......Page 27
Improved Form Controls......Page 32
Wrapping It Up......Page 35
Dojo Remote Scripting......Page 38
JavaScript Idioms for Calling XHR......Page 40
A Wish List with 4-1dojo.data and 4-1dojox.grid.Grid......Page 47
Researching Cigars Using JSONP......Page 57
Reviews with dojo.xhrGet......Page 64
Errors and Debugging......Page 68
The Dojo APIs......Page 71
Modularizing JavaScript......Page 72
Dojo Source Code Organization......Page 76
Loading Dojo......Page 79
Binding with dojo.hitch......Page 84
JavaScript 1.6 Array Methods......Page 91
Support for Polymorphism......Page 95
Combining, Structuring, and Copying Objects......Page 97
Programming DOM Events with Dojo......Page 102
Connecting to User-Defined Events with Dojo......Page 118
Publish-Subscribe......Page 121
Managing Callbacks with dojo.Deferred......Page 124
Core Dojo DOM Utility Functions......Page 141
Finding and Editing Nodes......Page 146
Inserting, Moving, and Deleting DOM Nodes......Page 159
Positioning DOM Nodes......Page 162
Animation......Page 169
Native Remote Scripting......Page 179
Using the Dojo XHR Framework......Page 181
Remote Scripting with script......Page 200
Remote Scripting with iframe......Page 208
Leveraging Remote Scripting to Access Web Services......Page 212
Bookmarking and the Back Button Without Navigating......Page 219
Why Use Object-Oriented Programming in JavaScript?......Page 226
Defining a Simple Class......Page 227
Defining a Subclass with Single Inheritance......Page 235
Mixins and Multiple Inheritance......Page 240
Preprocessing Constructor Arguments......Page 249
Resolving Property Name Clashes......Page 253
Two-Phase Construction......Page 256
Creating Custom Objects Without Constructors......Page 258
dojo.data......Page 261
The Big Picture......Page 262
dojo.data and Incremental Search......Page 269
Partitioning with QueryReadStore......Page 273
Calling Read Methods from JavaScript......Page 276
A Yahoo Search Driver......Page 281
The Dojo Loader and Build System......Page 287
The Big Picture......Page 288
The Dojo Loader......Page 291
Optimizing Deployment with the Dojo Build System......Page 300
Compressing JavaScript Resources with Dojo-Rhino......Page 314
Advanced Dijit......Page 319
What Exactly Is a Widget?......Page 320
Finding and Manipulating Declarative Widgets......Page 323
Creating Instances Programmatically......Page 328
Extension Points......Page 332
Example: Live Forms......Page 339
A Simple 4-1Tree......Page 342
Hierarchical Data Stores......Page 345
Extension Points......Page 350
Manipulating the 4-1Tree......Page 352
Drag and Drop......Page 357
Grid......Page 367
4-1Grid Display and Design......Page 368
Programmatic Structures......Page 373
Extension Points......Page 376
Cell Editing......Page 386
4-1Grid Manipulation......Page 390
Form Control Features......Page 395
Streamlined Editing......Page 398
Feedback......Page 406
Dates, Numbers, and i18n......Page 410
Action Buttons, Toolbars, and Menus......Page 419
A11y......Page 423
Theme Structure......Page 429
Changing Look and Feel......Page 436
A11y and Themes......Page 441
Panes: ContentPane and TitlePane......Page 443
The Alignment Container: BorderContainer......Page 448
Stack Containers......Page 452
Creating and Extending Widget Classes......Page 456
Widget Classes Using dijit.Declaration......Page 457
Widget Classes Using dojo.declare......Page 462
The Widget Life Cycle......Page 467
Extending Widgets......Page 470
Example: A Yahoo Answers Widget......Page 471
Rich Internet Applications......Page 477
The Big Picture......Page 478
Step 1: Create the Application Skeleton......Page 487
Step 2: The Main Menu and Command System......Page 492
Step 3: A Custom Statusbar Widget......Page 500
Step 4: The Navigator Pane and On-Demand Data Store......Page 506
Step 5: Workspace Objects......Page 516
Foundations......Page 530
Graphics......Page 532
Dojo Data and Storage......Page 533
Appendixes......Page 534
Bibliography......Page 535
C......Page 537
D......Page 538
E......Page 540
I......Page 541
L......Page 542
O......Page 543
S......Page 544
W......Page 545
Z......Page 546