Advanced JavaScript Topics
Creating Layered Architectures
Browser Modes
Creating Objects via Prototypes
Object Literals
Encapsulation
Overloading
Closures
OO Best Practices
Utility Libraries
Namespaces
Exception Handling
Event Models
Fibebug
Exercise: Creating Namespaces, Objects and Debugging with Firebug
Ajax Essentials
Cross-Browser Ajax
Processing Responses: JSON vs. XML
Safely Handling JSON Data
Using Cross-Domain Requests
Cross-Domain Proxies
Dynamic Script Tags
Utilizing RSS and XML Feeds
Exercise: Dynamic Form Controls and Processing JSON-based Data
Introducing Dojo
Dojo Overview: Core, Dijit, Dojox
Working with Dojo
The Dojo Namespaces
Setting up Dojo
djConfig Variable
Working with Themes
dojo.require()
Introducing Dojo Widgets
The Dojo Event Model
AJAX the Dojo Way
Using Firebug with Dojo
Debugging Dojo Apps
Exercise: Configuring Dojo, Working with Widgets, handling events with Dojo
Core Dojo: DOM Events and More
Using Dojo to improve DOM Handling
Using dojo.query()
dojo.place()
dojo.style()
Managing Resources on Page Loads/Unloads
The power of dojo.connect()
The Dojo Event Object
Events across browsers
Browser Detection
JavaScript Inheritance Mechanisms
Prototypes and Constructors
Extending with Dojo
Using dojo.declare(), dojo.extend(), dojo.mixin()
Multiple Inheritance
Arrays, Objects within Dojo
dojo.hitch()
Using Asserts and Firebug Console
String Manipulation
Using the Pub-Sub Model
CSS and Box Model Manipulation
Working with Forms
Form validation
Number/Date/Currency Formatting
Exercise: Widget Extension, Handling Event Propagation,
Dojo and AJAX
Introducing dojo.xhrGet()
Controlling response data
JSON Formatted Data
Handling Errors
Passing Parameters
Rolling Forms
Setting timeouts
Canceling requests
Using dojo.xhr* methods
Cross Domain Solutions using Dojo
Using a Cross-Domain Proxy
Dynamic Tag Scripting Solutions
JSONP
Deleting script tags
Exercise: Handling Ajax-based Form Submissions, Dojo Form Widgets and Data Validation
Exercise: Using Script-Tags to Process Cross-Domain Data, Introducing AccordionContainers and TabContainers
Dijit: Dojo Widgets
Dojo Widgets Overview
Widgets and Namespaces
Creating Widgets in Markup
Programmatic Widget Creation
Extending Widgets
Examination of Numerous Widgets
Form Widgets
Textbox and Validation Widgets
Buttons and Popup Menus
ComboBox
DatePicker
Rich Text Editors
Inline Editors
Filtering Tables
Tooltips
Toasters
Trees
Layout Widgets
ContentPanes, AccordionContainers
Exercise: Working with Layout Containers, Menus, Tooltips
Customizing Dojo Widgets
Programmatic vs. Declarative Widgets
Creating Custom Widgets
The Widget LifeCycle
Using Extension Points
Using AttachEvent and AttachPoints
Using Trees and Grids
Sorting and Filtering Grids
Using DataStores
Accessibility Issues
Exercise: Using DataStores and Grid Widgets
Exercise: Creating Your Own Widgets,
Styling, Effects, Animation, and Drag-and-Drop, and More
Working with Templates
Using Skins
Working with Classes
dojo.fx Module
Common Effects: Wipes and Fades
Drag-and-Drop
Handling Events
Drag-and-Drop Example
Dojo i18n Support
Using Locales
Handling Dates and Formatting Numbers
Exercise: Creating Draggable Applications