Table of Contents
Preface
Chapter 1: AJAX and ASP.NET
Chapter 2: AJAX Foundations
Chapter 3: Object-Oriented JavaScript
Chapter 4: Introducing the Microsoft AJAX Library
Chapter 5: OOP with the Microsoft AJAX Library
Chapter 6: Creating Client Components
Chapter 7: Case Study: Timer and EnhancedTextBox
Chapter 8: Debugging Tools and Techniques
Appendix A: Microsoft AJAX Library Reference
Index
- Chapter 1: AJAX and ASP.NET
- The Big Picture
- AJAX and Web 2.0
- Building Websites Since 1990
- HTTP and HTML
- ASP.NET and Other Server-Side Technologies
- JavaScript and Other Client-Side Technologies
- What's Missing?
- The World of AJAX
- What is AJAX Made Of?
- Uses and Misuses of AJAX
- Introducing ASP.NET AJAX
- Resources and Tools
- Setting Up Your Environment
- Installing IIS
- Installing Visual Web Developer
- Creating a Folder for Your Project
- Preparing the Atlas Application in Windows Vista
- Preparing the Atlas Web Application in Windows XP
- Hello World!
- Time for Action—Quickstart AJAX
- What Just Happened?
- The Big Picture
- Summary
- Chapter 2: AJAX Foundations
- JavaScript and the Document Object Model
- Time for Action—Playing with JavaScript and the DOM
- What Just Happened
- JavaScript and the Document Object Model
- JavaScript Events and the DOM
- Time for Action—Using JavaScript Events and the DOM
- What Just Happened?
- Even More DOM
- Time for Action—Even More DOM
- What Just Happened?
- JavaScript, DOM, and CSS
- Time for Action—Working with CSS and JavaScript
- What Just Happened?
- The XMLHttpRequest Object
- Creating the XMLHttpRequest Object
- Initiating Server Requests
- Handling the Server Response
- Time for Action—Making Asynchronous Calls with XMLHttpRequest
- What Just Happened?
- Summary
- Chapter 3: Object-Oriented JavaScript
- Concepts of Object-Oriented Programming
- Objects and Classes
- Encapsulation
- Inheritance
- Polymorphism
- Object-Oriented JavaScript
- JavaScript Functions
- Functions as Variables
- Anonymous Functions
- Inner Functions and JavaScript Closures
- JavaScript Classes
- Class Diagrams
- C# and JavaScript Classes
- Referencing External Functions
- Thinking of Objects as Associative Arrays
- Creating Object Members on the Fly
- Private Members
- Prototypes
- The JavaScript Execution Context
- var x, this.x, and x
- Using the Right Context
- Inheritance using Closures and Prototypes
- Inheritance Using Closures
- Inheritance Using Prototyping
- JavaScript Functions
- Introducing JSON
- Summary
- Concepts of Object-Oriented Programming
- Chapter 4: Introducing the Microsoft AJAX Library
- Microsoft AJAX Library Components
- Asynchronous Communication
- Client Asynchronous Communication
- Server Asynchronous Communication
- Working with WebRequest
- Time for Action—WebRequest
- What Just Happened?
- More WebRequests
- Time for Action—More WebRequest
- What Just Happened?
- Summary
- Chapter 5: OOP with the Microsoft AJAX Library
- The New Features
- JavaScript Base Classes Extensions
- Time for Action: Bubble Sort and Base Classes Extensions
- What Just Happened?
- Classes in Microsoft AJAX Library
- The Type, Namespaces, and Events
- Time for Action—Creating and Using the Person Class
- What Just Happened?
- Inheritance
- Time for Action—Implementing Inheritance using Microsoft
- What Just Happened?
- AJAX Library
- Enumerations
- Interfaces
- Ti me for action—Inheritance and Interfaces
- What Just Happened?
- OOP Recommendations
- The Type, Namespaces, and Events
- Summary
- Chapter 6: Creating Client Components
- DOM Elements and Events
- Components, Behaviors, and Controls
- Creating Components
- Disposing of Components
- Sys.Application and Client Page Life-Cycle Events
- The init Event
- The load Event
- The pageLoad() Method
- The pageUnload() Method
- The unload Event
- Behaviors
- Controls
- Quicksteps for Creating Custom Client Components
- Summary
- Chapter 7: Case Study: Timer and EnhancedTextBox
- The Timer Component
- The EnhancedTextBox Behavior
- Creating Timer and EnhancedTextBox
- Time for Action—Creating Custom Client Components
- What Just Happened?
- Using the Components
- Summary
- Chapter 8: Debugging Tools and Techniques
- AJAX Debugging Overview
- Debugging and Tracing with Microsoft AJAX Library
- MicrosoftAjax.debug.js
- Anonymous Functions vs. Pseudo-Named Functions
- Parameters Validation
- Debugging in Internet Explorer
- Web Development Helper
- Internet Explorer Developer Toolbar
- Other tools
- Debugging in Firefox
- Firebug
- Venkman JavaScript Debugger
- Web Developer
- Fiddler
- Testing
- Summary
- Appendix A: Microsoft AJAX Library Reference
- Conventions
- Function Class
- emptyMethod() Method
- _validateParams() Method
- createDelegate() Method
- createCallback() Method
- Type Class
- JavaScript Base Type Extensions
- Array Class
- Boolean Class
- Date Class
- Error Class
- create() Method
- Number Class
- Object Class
- RegExp Class
- String Class
- Sys Namespace
- Sys.Application Class
- Sys.ApplicationLoadEventArgs Class
- Sys.Browser Class
- Sys.CancelEventArgs Class
- Sys.Component Class
- Sys.CultureInfo Class
- Sys.Debug Class
- Sys.EventArgs Class
- Sys.EventHandlerList Class
- Sys.IContainer Interface
- Sys.IDisposable Interface
- Sys.INotifyDisposing Interface
- Sys.INotifyPropertyChange Interface
- Sys.PropertyChangedEventArgs Class
- Sys.ScriptLoader Class
- Sys.ScriptLoaderTask Class
- Sys.StringBuilder Class
- Sys.UI Namespace
- Sys.UI.Behavior Class
- Sys.UI.Bounds Class
- Sys.UI.Control Class
- Sys.UI.DomElement Class
- getElementById() Method ($get)
- addCssClass() Method
- containsCssClass() Method
- removeCssClass() Method
- toggleCssClass() Method
- getLocation() Method
- getBounds() Method
- setLocation() Method
- Sys.UI.DomEvent Class
- Sys.UI.Key Class
- addHandler() Method ($addHandler)
- addHandlers() Method ($addHandlers)
- clearHandlers() Method ($clearHandlers)
- preventDefault() Method
- removeHandler() Method
- stopPropagation() Method
- Sys.UI.MouseButton Enumeration
- Sys.UI.Point Class
- Sys.UI.VisibilityMode Enumeration
- Sys.Net Namespace
- Sys.Net.NetworkRequestEventArgs Class
- Sys.Net.WebRequest Class
- Sys.Net.WebRequestExecutor Class
- Sys.Net.WebRequestManager Class
- Sys.Net.XmlHttpExecutor Class
- Sys.Serialization Namespace
- Sys.Serialization.JavaScriptSerializer Class
- serialize() Method
- deserialize() Method
- Sys.Serialization.JavaScriptSerializer Class



