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: 543
Contents......Page 3
Introduction......Page 7
Key Aspects of Dojo......Page 10
Using the Book......Page 13
Acknowledgments......Page 15
Ajax the Dojo Way......Page 17
Powerful Web Forms Made Easy......Page 18
Installing Dojo on Your Own Server......Page 19
Adding Dojo and Dijit to a Page......Page 20
Laying Out the Form......Page 24
Improved Form Controls......Page 29
Wrapping It Up......Page 32
Dojo Remote Scripting......Page 35
JavaScript Idioms for Calling XHR......Page 37
A Wish List with 4-1dojo.data and 4-1dojox.grid.Grid......Page 44
Researching Cigars Using JSONP......Page 54
Reviews with dojo.xhrGet......Page 61
Errors and Debugging......Page 65
The Dojo APIs......Page 68
Modularizing JavaScript......Page 69
Dojo Source Code Organization......Page 73
Loading Dojo......Page 76
Binding with dojo.hitch......Page 81
JavaScript 1.6 Array Methods......Page 88
Support for Polymorphism......Page 92
Combining, Structuring, and Copying Objects......Page 94
Programming DOM Events with Dojo......Page 99
Connecting to User-Defined Events with Dojo......Page 115
Publish-Subscribe......Page 118
Managing Callbacks with dojo.Deferred......Page 121
Core Dojo DOM Utility Functions......Page 138
Finding and Editing Nodes......Page 143
Inserting, Moving, and Deleting DOM Nodes......Page 156
Positioning DOM Nodes......Page 159
Animation......Page 166
Native Remote Scripting......Page 176
Using the Dojo XHR Framework......Page 178
Remote Scripting with script......Page 197
Remote Scripting with iframe......Page 205
Leveraging Remote Scripting to Access Web Services......Page 209
Bookmarking and the Back Button Without Navigating......Page 216
Why Use Object-Oriented Programming in JavaScript?......Page 223
Defining a Simple Class......Page 224
Defining a Subclass with Single Inheritance......Page 232
Mixins and Multiple Inheritance......Page 237
Preprocessing Constructor Arguments......Page 246
Resolving Property Name Clashes......Page 250
Two-Phase Construction......Page 253
Creating Custom Objects Without Constructors......Page 255
dojo.data......Page 258
The Big Picture......Page 259
dojo.data and Incremental Search......Page 266
Partitioning with QueryReadStore......Page 270
Calling Read Methods from JavaScript......Page 273
A Yahoo Search Driver......Page 278
The Dojo Loader and Build System......Page 284
The Big Picture......Page 285
The Dojo Loader......Page 288
Optimizing Deployment with the Dojo Build System......Page 297
Compressing JavaScript Resources with Dojo-Rhino......Page 311
Advanced Dijit......Page 316
What Exactly Is a Widget?......Page 317
Finding and Manipulating Declarative Widgets......Page 320
Creating Instances Programmatically......Page 325
Extension Points......Page 329
Example: Live Forms......Page 336
A Simple 4-1Tree......Page 339
Hierarchical Data Stores......Page 342
Extension Points......Page 347
Manipulating the 4-1Tree......Page 349
Drag and Drop......Page 354
Grid......Page 364
4-1Grid Display and Design......Page 365
Programmatic Structures......Page 370
Extension Points......Page 373
Cell Editing......Page 383
4-1Grid Manipulation......Page 387
Form Control Features......Page 392
Streamlined Editing......Page 395
Feedback......Page 403
Dates, Numbers, and i18n......Page 407
Action Buttons, Toolbars, and Menus......Page 416
A11y......Page 420
Theme Structure......Page 426
Changing Look and Feel......Page 433
A11y and Themes......Page 438
Panes: ContentPane and TitlePane......Page 440
The Alignment Container: BorderContainer......Page 445
Stack Containers......Page 449
Creating and Extending Widget Classes......Page 453
Widget Classes Using dijit.Declaration......Page 454
Widget Classes Using dojo.declare......Page 459
The Widget Life Cycle......Page 464
Extending Widgets......Page 467
Example: A Yahoo Answers Widget......Page 468
Rich Internet Applications......Page 474
The Big Picture......Page 475
Step 1: Create the Application Skeleton......Page 484
Step 2: The Main Menu and Command System......Page 489
Step 3: A Custom Statusbar Widget......Page 497
Step 4: The Navigator Pane and On-Demand Data Store......Page 503
Step 5: Workspace Objects......Page 513
Foundations......Page 527
Graphics......Page 529
Dojo Data and Storage......Page 530
Appendixes......Page 531
Bibliography......Page 532
C......Page 534
D......Page 535
E......Page 537
I......Page 538
L......Page 539
O......Page 540
S......Page 541
W......Page 542
Z......Page 543