Rights Contact Login For More Details
- Wiley
More About This Title Professional Ajax, 2nd Edition
- English
English
Jeremy McPeak began tinkering with web development as a hobby in 1998. Currently working in the IT department of a school district, Jeremy has experience developing web solutions with JavaScript, PHP, and C#. He has written several online articles covering topics such as XSLT, WebForms, and C#. He is also co-author of Beginning JavaScript, 3rd Edition (Wiley 2007). Jeremy can be reached through his web site at www.wdonline.com.
Joe Fawcett started programming in the 1970s and briefly worked in IT upon leaving full-time education. He then pursued a more checkered career before returning to software development in 1994. In 2003 he was awarded the title of Microsoft Most Valuable Professional in XML for community contributions and technical expertise. He currently works in London as a developer for FTC Kaplan, a leading international provider of accountancy and business training, where he specializes in systems integration.
- English
English
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