Foreword Credits Preface Chapter 1. Ajax Basics 1. Detect Browser Compatibility with the Request Object 2. Use the Request Object to POST Data to the Server 3. Use Your Own Library for XMLHttpRequest 4. Receive Data as XML 5. Get Plain Old Strings 6. Receive Data as a Number 7. Receive Data in JSON Format 8. Handle Request Object Errors 9. Dig into the HTTP Response 10. Generate a Styled Message with a CSS File 11. Generate a Styled User Message on the Fly Chapter 2. Web Forms 12. Submit Text Field or textarea Values to the Server Without a Browser Refresh 13. Display Text Field or textarea Values Using Server Data 14. Submit Selection-List Values to the Server Without a Round Trip 15. Dynamically Generate a New Selection List Using Server Data 16. Extend an Existing Selection List 17. Submit Checkbox Values to the Server Without a Round Trip 18. Dynamically Generate a New Checkbox Group with Server Data 19. Populate an Existing Checkbox Group from the Server 20. Change Unordered Lists Using an HTTP Response 21. Submit Hidden Tag Values to a Server Component Chapter 3. Validation 22. Validate a Text Field or textarea for Blank Fields 23. Validate Email Syntax 24. Validate Unique Usernames 25. Validate Credit Card Numbers 26. Validate Credit Card Security Codes 27. Validate a Postal Code Chapter 4. Power Hacks for Web Developers 28. Get Access to the Google Maps API 29. Use the Google Maps API Request Object 30. Use Ajax with a Google Maps and Yahoo! Maps Mash-up 31. Display a Weather.com XML Data Feed 32. Use Ajax with a Yahoo! Maps and GeoURL Mash-up 33. Debug Ajax-Generated Tags in Firefox 34. Fetch a Postal Code 35. Create Large, Maintainable Bookmarklets 36. Use Permanent Client-Side Storage for Ajax Applications 37. Control Browser History with iframes 38. Send Cookie Values to a Server Program 39. Use XMLHttpRequest to Scrape an Energy Price from a Web Page 40. Send an Email with XMLHttpRequest 41. Find the Browser's Locale Information 42. Create an RSS Feed Reader Chapter 5. Direct Web Remoting (DWR) for Java Jocks 43. Integrate DWR into Your Java Web Application 44. Use DWR to Populate a Selection List from a Java Array 45. Use DWR to Create a Selection List from a Java Map 46. Display the Keys/Values from a Java HashMap on a Web Page 47. Use DWR to Populate an Ordered List from a Java Array 48. Access a Custom Java Object with JavaScript 49. Call a Built-in Java Object from JavaScript Using DWR Chapter 6. Hack Ajax with the Prototype and Rico Libraries 50. Use Prototype's Ajax Tools with Your Application 51. Update an HTML Element's Content from the Server 52. Create Observers for Web Page Fields 53. Use Rico to Update Several Elements with One Ajax Response 54. Create a Drag-and-Drop Bookstore Chapter 7. Work with Ajax and Ruby on Rails 55. Install Ruby on Rails 56. Monitor Remote Calls with Rails 57. Make Your JavaScript Available to Rails Applications 58. Dynamically Generate a Selection List in a Rails Template 59. Find Out Whether Ajax Is Calling in the Request 60. Dynamically Generate a Selection List Using Database Data 61. Periodically Make a Remote Call 62. Dynamically View Request Information for XMLHttpRequest Chapter 8. Savor the script.aculo.us JavaScript Library 63. Integrate script.aculo.us Visual Effects with an Ajax Applicatior 64. Create a Login Box That Shrugs Off Invalid Logins 65. Create an Auto-Complete Field with script.aculo.us 66. Create an In-Place Editor Field 67. Create a Web Form That Disappears When Submitted Chapter 9. Options and Effiencies 68. Fix the Browser Back Button in Ajax Applications 69. Handle Bookmarks and Back Buttons with RSH 70. Set a Time Limit for the HTTP Request 71. Improve Maintainability, Performance, and Reliability for Large JavaScript Applications 72. Obfuscate JavaScript and Ajax Code 73. Use a Dynamic script Tag to Make Web Services Requests 74. Configure Apache to Deal with Cross-Domain Issues 75. Run a Search Engine Inside Your Browser 76. Use Declarative Markup Instead of Script via XForms 77. Build a Client-Side Cache 78. Create an Auto-Complete Field 79. Dynamically Display More Information About a Topic 80. Use Strings and Arrays to Dynamically Generate HTML Index