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