Ajax, the Popular Term for Asynchronous Javascript and XML, Is One of the Most Important Combinations of Technologies for Web Developers to Know These Days
Total Page:16
File Type:pdf, Size:1020Kb
Ajax Hacks By Bruce W. Perry ............................................... Publisher: O'Reilly Pub Date: March 2006 Print ISBN-10: 0-596-10169-4 Print ISBN-13: 978-0-59-610169-5 Pages: 438 Table of Contents | Index Ajax, the popular term for Asynchronous JavaScript and XML, is one of the most important combinations of technologies for web developers to know these days. With its rich grouping of technologies, Ajax developers can create interactive web applications with XML-based web services, using JavaScript in the browser to process the web server response. Taking complete advantage of Ajax, however, requires something more than your typical "how-to" book. What it calls for is Ajax Hacks from O'Reilly. This valuable guide provides direct, hands-on solutions that take the mystery out of Ajax's many capabilities. Each hack represents a clever way to accomplish a specific task, saving you countless hours of searching for the right answer. A smart collection of 100 insider tips and tricks,Ajax Hacks covers all of the technology's finer points. Want to build next-generation web applications today? This book can show you how. Among the multitude of topics addressed, it shows you techniques for: Using Ajax with Google Maps and Yahoo Maps Displaying Weather.com data Scraping stock quotes Fetching postal codes Building web forms with auto-complete functionality Ajax Hacks also features a number of advanced hacks for accelerated web developers. Discover how to create huge, maintainable bookmarklets, how to use client-side storage for Ajax applications, and how to call a built-in Java object from JavaScript using Ajax. The book even addresses best practices for testing Ajax applications and improving maintenance, performance, and reliability for JavaScript code. The latest in O"Reilly's celebrated Hacks series, Ajax Hacks smartly complements other O'Reilly titles such as Head Rush Ajax and JavaScript: The Definitive Guide. Ajax Hacks By Bruce W. Perry ............................................... Publisher: O'Reilly Pub Date: March 2006 Print ISBN-10: 0-596-10169-4 Print ISBN-13: 978-0-59-610169-5 Pages: 438 Table of Contents | Index 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 Foreword The truth is, I've never built an Ajax application. Sure, I've worked on Ajax projects. But when it comes to programming, my experience is pretty limited. I've done some JavaScripting here and there. I know a little Perl, but hardly enough to build a web application. As a programmer, I'm more of an occasional weekend hobbyist than anything else. You can imagine how frustrating it is for people to learn this fact when they send me emails asking for help with their JavaScript. But you can hardly fault them for expecting me to be a technologist. After all, I wrote an article coining the term "Ajax," and Ajax is all about technology, right? The funny thing is that I didn't see it that way when I was writing the essay. I didn't think I was writing for technologists at all. I'm a designer, and I thought I was writing for a design audience. If you look at some of the other things we've published on adaptivepath.com, you can see that we're much more likely to be talking about ways to analyze user behavior or make an experience connect with people than about the latest code libraries or data schemas. That's one reason some people thought it was a little strange for me to be writing about Ajax at all. Designers, one way of thinking goes, should leave writing about technology to technologists. But seeing Ajax as a purely technological phenomenon misses the point. If anything, Ajax is even more of a sea change for designers than it is for developers. Sure, there are a lot of ways in which developers need to change their thinking as they make the transition from building traditional web applications to building Ajax applications. But for those of us who design user experiences, the change brought about by Ajax is even more profound. We've gotten pretty good at our jobs in the last 10 years or so. We've started to get a handle on what the Web does well and what the Web does poorly. And we've developed an arsenal of conventions to rely on when we design applications: where the logo goes, how a link behaves when it is clicked, how to communicate that something even can be clicked... All of that knowledgewell, most of it, anywaygoes out the window with Ajax.