![]() |
Table of Contents
Introduction xv Chapter 1: What Is Ajax? 1 Ajax Is Born 2 The Evolution of the Web 2 JavaScript 2 Frames 3 The Hidden Frame Technique 3 Dynamic HTML and the DOM 3 Iframes 4 XMLHttp 4 The Real Ajax 5 Ajax Principles 6 Technologies behind Ajax 6 Who Is Using Ajax? 7 Google Suggest 7 Gmail 8 Google Maps 9 A9 10 Yahoo! News 11 Bitflux Blog 12 Confusion and Controversy 13 Ajax and Web 2.0 14 Summary 15 Chapter 2: Ajax Basics 17 HTTP Primer 17 HTTP Requests 18 HTTP Responses 20 Ajax Communication Techniques 21 The Hidden Frame Technique 21 XMLHttp Requests (XHR) 37 Ajax with Images 50 Dynamic Script Loading 59 Cache Control 63 Summary 63 Chapter 3: Ajax Patterns 65 Communication Control Patterns 65 Predictive Fetch 66 Page Preloading Example 66 Submission Throttling 74 Incremental Form Validation Example 76 Incremental Field Validation Example 82 Periodic Refresh 85 New Comment Notifier Example 86 Multi-Stage Download 90 Additional Information Links Example 91 Fallback Patterns 93 Cancel Pending Requests 94 Try Again 96 Summary 97 Chapter 4: Ajax Libraries 99 The Yahoo! Connection Manager 99 Setup 99 Basic Requests 100 The Callback Object 100 Monitoring and Managing Requests 104 Form Interaction 104 File Uploads 105 GET Example 106 POST Example 107 Additional Features 108 Limitations 108 Prototype 109 The Ajax.Request Object 109 The Options Object 109 GET Example 112 POST Example 113 The Ajax.Updater Object 113 The Ajax.Responders Object 115 Advantages and Disadvantages 117 jQuery 117 Simple jQuery Expressions 117 Executing GET Requests 118 GET Example 119 The $.post() Method 120 POST Example 120 The load() Method 122 The $.ajax() Method 123 The ajaxStart() and ajaxStop() Methods 124 Limitations 124 Summary 125 Chapter 5: Request Management 127 Priority Queues 127 The RequestManager Object 131 Request Description Objects 132 Queuing Requests 133 Sending Requests 134 Cancelling Requests 139 Age-Based Promotion 141 Handling Ajax Patterns 142 Using RequestManager 145 Summary 148 Chapter 6: XML, XPath, and XSLT 149 XML Support in Browsers 149 XML DOM in IE 149 XML in Other Browsers 159 Cross-Browser XML 162 A Basic XML Example 163 XPath Support in Browsers 170 Introduction to XPath 170 XPath in IE 172 Working with Namespaces 173 XPath in Other Browsers 175 Working with a Namespace Resolver 177 Cross-Browser XPath 178 XSL Transformation Support in Browsers 179 Introduction to XSLT 180 XSLT in IE 182 XSLT in Other Browsers 187 Cross-Browser XSLT 189 Best Picks Revisited 189 Summary 192 Chapter 7: Syndication with RSS and Atom 193 RSS 193 RSS 0.91 194 RSS 1.0 195 RSS 2.0 196 Atom 196 XParser 197 The xparser Namespace 197 Retrieving the Data 198 The Abstract Classes 198 Creating a News Ticker 210 The Server-Side Component 210 The Client-Side Component 211 Styling the News 221 Using the News Ticker Widget 222 Web Search with RSS 223 The Server-Side Component 224 The Client-Side Component 225 Customizing the Web Search Widget 232 Using the Web Search Widget 234 Summary 235 Chapter 8: JSON 237 What Is JSON? 237 Array Literals 237 Object Literals 238 Mixing Literals 239 JSON Syntax 240 JSON Encoding/Decoding 241 JSON versus XML 242 Server-Side JSON Tools 243 JSON-PHP 243 Other Tools 245 Creating an Autosuggest Textbox 246 Functionality Overview 246 The HTML 247 The Database Table 249 The Architecture 249 The Classes 250 The AutoSuggest Control 250 The Suggestion Provider 267 The Server-Side Component 268 The Client-Side Component 270 Summary 272 Chapter 9: Comet 273 HTTP Streaming 274 Request Delays 274 File Modification Example 276 Using Iframes 277 Browser-Specific Approaches 282 Server-Sent DOM Events 291 Connection Management 296 Server-Side Support 297 Summary 298 Chapter 10: Maps and Mashups 299 The Rise of Mashups 300 Geocoding 300 Geocoding Web Sites 300 Geocoding Services 301 Google Maps API 301 How Does It Work? 301 Getting Started 302 Google Maps Basics 303 Controls 304 Moving the Map 306 Info Windows 306 Events 311 Map Overlays 313 Additional Information 321 Yahoo! Maps API 321 Getting Started 321 Yahoo! Maps Basics 322 Controls 324 Moving the Map 325 Smart Windows 326 Events 327 Map Overlays 328 Address Lookup 334 Additional Information 334 Other Mapping APIs 335 Summary 335 Chapter 11: Ajax Debugging Tools 337 The Problem 337 FireBug 338 Installation and Setup 338 The Interface 339 XHR Logging 340 Ajax Debugging with FireBug 341 FireBug Limitations 342 Microsoft Fiddler 342 Installation and Setup 343 The Interface 344 HTTP Breakpoints 347 Ajax Debugging with Fiddler 348 Summary 349 Chapter 12: Web Site Widgets 351 Creating a Weather Widget 351 The Weather.com SDK 351 The Server-Side Component 352 The Client-Side Component 361 Getting Data from the Server 361 Customizing the Weather Widget 362 Setting Up the Weather Widget as an Application 366 Adding the Weather Widget to the Web Page 370 Watching Stocks 371 Getting Yahoo! Finance Information 371 The Stock Quote Proxy 372 Client Component: The AjaxStockWatcher Class 376 Customizing the Stock Quotes 385 Using the Stock Watcher Widget 387 Creating a Site Search Widget 388 The Server-Side Component 389 The Client-Side Component 398 Customizing the Site Search Widget 403 Adding the Site Search Widget to a Page 405 Summary 406 Chapter 13: Ajax Frameworks 407 JPSpan 407 Using JPSpan 408 JPSpan Example 412 Summary of JPSpan 415 DWR 416 Using DWR 416 DWR Example 419 More about dwr.xml 424 Summary of DWR 427 Ajax.NET Professional 427 Using Ajax.NET Professional 427 Type Conversion 429 Session Access 430 Ajax.NET Professional Example 431 Summary of Ajax.NET Professional 436 Summary 436 Chapter 14: ASP.NET AJAX Extensions (Atlas) 437 Requirements and Setup 438 The AJAX Client Library 438 Accessing the Client Tools with ASP.NET 438 Accessing the Client Tools without ASP.NET 439 Using Classes 440 Writing Code with the ASP.NET AJAX Library 440 Using Controls 446 Making HTTP Requests 451 The UpdatePanel Control 455 Adding the UpdatePanel to the Page 455 Adding Content to the UpdatePanel 456 Triggering an Update 457 Finishing Up 458 SiteSearch Revisited 459 The User Interface 459 Getting Started 460 Declaring the Form 460 Performing the Search 462 Clearing the Results 467 Handling Errors 467 Hooking Up the Events 468 Summary 470 Chapter 15: Case Study: FooReader.NET 471 The Client Components 472 The User Interface 472 Styling the Interface 475 Driving the UI 481 The Server Application 495 Possible Paradigms 495 Implementation 496 Setup and Testing 506 Summary 508 Chapter 16: Case Study: AjaxMail 509 Requirements 509 Architecture 510 Resources Used 510 The Database Tables 511 The Configuration File 512 The AjaxMailbox Class 513 Performing Actions 535 The User Interface 541 The Folder View 544 Read View 546 Compose View 548 Layout 550 Tying It All Together 550 Helper Functions 552 The Mailbox 553 Callback Functions 571 Event Handlers 573 The Last Step 573 Summary 574 Appendix A: Licenses for Libraries and Frameworks 575 Index 583 GNU General Public License 600 |
![]() |