01_109496 ffirs.qxd 2/5/07 6:41 PM Page i Professional Ajax 2nd Edition Nicholas C. Zakas Jeremy McPeak Joe Fawcett 01_109496 ffirs.qxd 2/5/07 6:41 PM Page i 01_109496 ffirs.qxd 2/5/07 6:41 PM Page i Professional Ajax 2nd Edition Nicholas C. Zakas Jeremy McPeak Joe Fawcett 01_109496 ffirs.qxd 2/5/07 6:41 PM Page ii Professional Ajax, 2nd Edition Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2007 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-10949-6 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 Library of Congress Cataloging-in-Publication Data:˙ Zakas, Nicholas C. Professional Ajax / Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett. -- 2nd ed. p. cm. Includes index. ISBN-13: 978-0-470-10949-6 (paper/website) ISBN-10: 0-470-10949-1 (paper/website) 1. Ajax (Web site development technology) 2. Web sites--Design--Computer programs. 3. JavaScript (Computer pro- gram language) 4. Asynchronous transfer mode. 5. World Wide Web. I. McPeak, Jeremy, 1979- II. Fawcett, Joe, 1962- III. Title. TK5105.8885.A52Z35 2007 005.13'3--dc22 2006103094 No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions. LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY:THE PUBLISHER AND THE AUTHOR MAKE NO REPRE- SENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CON- TENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR APARTICULAR PURPOSE. NO WARRANTYMAYBE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAYNOT BE SUITABLE FOR EVERYSITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER PROFES- SIONALSERVICES. IF PROFESSIONALASSISTANCE IS REQUIRED, THE SERVICES OF ACOMPETENT PROFES- SIONALPERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALLBE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS ACITATION AND/OR APOTENTIALSOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAYPROVIDE OR RECOMMENDATIONS IT MAYMAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT IS READ. For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Trademarks:Wiley, the Wiley logo, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be avail- able in electronic books. 01_109496 ffirs.qxd 2/5/07 6:41 PM Page iii To mom, dad, Greg, Yiayia, and the rest of my family and friends who have supported me throughout my cross-country move. —Nicholas C. Zakas To the love of my life, Starla. Thank you for your love, patience, and encouragement. —Jeremy McPeak To my parents, Sheila and William, who instilled in me a love of reading. Thank you! —Joe Fawcett 01_109496 ffirs.qxd 2/5/07 6:41 PM Page iv About the Authors Nicholas C. Zakashas a BS in Computer Science from Merrimack College and an MBAfrom Endicott College. He is the author of Professional JavaScript for Web Developers(Wiley 2005) as well as several online articles. Nicholas works for Yahoo! as a frontend engineer and has worked in web development for more than 6 years, during which time he has helped develop web solutions in use at some of the largest companies in the world. Nicholas can be reached through his web site at www.nczonline.net. Jeremy McPeakbegan 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 educa- tion. 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 XMLfor community contribu- tions 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. 01_109496 ffirs.qxd 2/5/07 6:41 PM Page v Credits Senior Acquisitions Editor Vice President and Executive Publisher Jim Minatel Joseph B. Wikert Senior Development Editor Graphics and Production Specialists Kevin Kent Sean Decker Jennifer Mayberry Technical Editor Amanda Spagnuolo Alexei Gorkov Alicia B. South Production Editor Quality Control Technician Angela Smith RobSpringer Copy Editor Project Coordinator Jeri Freedman Bill Ramsey Editorial Manager Proofreading Mary Beth Wakefield Christopher Jones Production Manager Indexing Tim Tate Johnna VanHoose Dinse Vice President and Executive Group Publisher Anniversary Logo Design Richard Swadley Richard Pacifico 01_109496 ffirs.qxd 2/5/07 6:41 PM Page vi Acknowledgments It takes many people to create a book such as this, and as such, we’d like to thank some people for their contributions to this work. First and foremost, thanks to everyone at Wiley for their support: to Jim Minatel for starting the process once again, and Kevin Kent for putting up with all of the last-minute changes and course diversions throughout the process. Also, a thanks to our technical editor, Alexei Gorkov, for doing a fantastic job keeping us honest. Last, a big thanks to those who provided feedback pre-publication including Peter Frueh, Adam Moore, Jenny Han, Matt Sweeney, Tyson Guskiken, Steve Carlson, and especially Hedger Wang, who suggested adding the chapter on request management. 02_109496 ftoc.qxd 2/5/07 6:46 PM Page vii 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
Description: