How You Can Use AJAX to Create More Powerful, Real-Time Web Applications

Total Page:16

File Type:pdf, Size:1020Kb

How You Can Use AJAX to Create More Powerful, Real-Time Web Applications How You Can Use AJAX To Create More Powerful, Real-time Web Applications Presentation by: Duncan Kenzie, CTO BCD Software International November 3, 2005 www.bcdsoftware.com AJAX The Acronym AJAX = “Asynchronous Javascript and XML” Term coined earlier this year by Adaptive Path See these links: http://www.adaptivepath.com/publications/essays/archives/0 00385.php and: http://en.wikipedia.org/wiki/AJAX Don’t Worry About The Fancy Acronym XML is not essential to use AJAX Some Javascript is “Asynchronous” is core concept AJAX is being popularized by Google www.bcdsoftware.com FAQs On AJAX Q: Is AJAX New? A: Not really The term is relatively new (Feb 2005) Technology available in IE browsers since 1998 in browsers have been there for several years to take advantage of AJAX. For example, you could use it with IE browsers since 1998. Q: Can I Use AJAX on my iSeries? A: Absolutely! Q: Do I need to install anything on my iSeries to use AJAX? A: Nope! Q: Is AJAX supported in FireFox and IE? A: Yes- it’s supported by all the major browsers www.bcdsoftware.com So What Does AJAX Do For Me? Classic User/Server interaction Model in Browsers: Kinda like 5250 – the server knows nothing until the User hits Enter: User requests page Server delivers entire page User clicks ‘OK’ Server responds – probably delivers another or same entire page. AJAXIAN Model: Kinda like Client/Server ! User does something – anything Eg: mouse click, types a character, moves mouse, etc. Server responds Some browser content is updated (asynchronously) – part of page or whole page www.bcdsoftware.com But Wait! I Hate Client/Server ! Of Course You Do! And Rightly So! Client/Server apps are a pain to distribute – you have to make sure the client code is always in synch with the server Client/Server apps are ‘heavy’ – huge client codebase to execute! But – AJAX uses key benefits of Client/Server without the downsides! No Heavy client – just intelligent web pages containing lightweight scripts No Distribution issues – everyone has a browser, and the client-side code is self-updating (ie every time you visit a page it updates) You get REAL-TIME INTERACTION between the User and the Server! www.bcdsoftware.com Real-Time Interaction with AJAX This Is The Core Benefit and the reason AJAX will transform Web Applications in the next 2 years Your applications can respond immediately to user input You can control subsequent page content based on user responses You can distribute and optimize server workload by having the server return many small amounts of data to browsers instead of less frequently returning huge amounts (entire pages) You can create more ‘intelligent’ applications Your users may not even realize they are interacting with the server www.bcdsoftware.com Possible Uses For AJAX Web-Based Instant Messaging AJAX call every n seconds to poll server for new messages Call takes place in background, with user unaware it is happening More Intelligent Searches AJAX call on every user keystroke in a search field Server returns a subset of hits that becomes more refined with each keystroke Eg: Google Mail, Google Suggest More Intelligent Forms Completion AJAX call to retrieve customer data (name, address, etc.) and update part of page once user has typed a valid customer name AJAX call to refine list of state names based on abbreviation typed by user AJAX call to show or hide parts of a form based on evaluating on the server a user’s response www.bcdsoftware.com Another Example Google Maps: As you move around or zoom in on an area of a map, an AJAX call in the background retrieves an updated image from the server and returns it to the browser, without a page refresh This happens asynchronously- you can continue moving around the map while the server sends updated info to the browser in the background. Eventually, the two catch up with your mouse movements. This would be impossible to do using the classic browser- server interaction model. www.bcdsoftware.com Other Examples To do list Add, change, delete items without reloading page Drag and drop components on page For portal technology – design pages easily Folder trees Access server as nodes are open, rather than loading entire tree from server on each page load Better communication with user Send ‘I’m busy’ messages to the user while the server does something in the background www.bcdsoftware.com Google’s Gmail –Ease of Use Old way of composing email Click the ‘Contacts’ button Type the search value, or click on a letter of the alphabet to narrow your search Click the ‘search’ button Scan the list and click on the contact’s email address. At least 4 steps, assuming you find the address first try. Google way You start typing the recipient’s name or email address (even if this is just a guess) Google immediately responds to EACH CHARACTER YOU TYPE and pops up a dynamic list showing you the possibilities. If you see the one you want, you select it by clicking on it. If not, you keep typing. 2 Step process – and much easier find functionality www.bcdsoftware.com How Does Google Do This? At first, you might think, ‘Well, they’ve simply loaded my entire address list into a Javascript array on my page, and then a nifty bit of script scans that array’. But think of the load on the server, and the possible size of the page to do this – if you have hundreds of addresses, this means hundreds of database accesses and writes to the page initially, and that’s before you’ve even decided for certain that you really want to compose an email ! In reality, what Google does is to make a server call to access your address book only once you start typing and for every character you type . At this point, they can narrow down the possible choices with a routine that matches on the potential recipient’s name and/or email address. Incidentally, Gmail only returns 15 hits at a time. The theory is that as you keep typing, and the list is updated accordingly, you will eventually find the correct address. www.bcdsoftware.com What About Server Workload? Q: Does making a round trip to the server on each keystroke place an excessive load on the server? A: Not necessarily – Alternative is to load entire address list (in my case, over 300 names) each time the user wants to compose an email Each keystroke returns only 15 hits In my experience, it takes a maximum of 3 keystrokes to find my intended recipient That’s 3 server calls for a total of 45 database hits www.bcdsoftware.com Google Suggest Visit http://www.google.com/webhp?complete=1&hl=en Works like GMail: Makes AJAX requests to server as you type Returns list of suggestions for each combo of characters you type www.bcdsoftware.com Google Suggest – Type ‘m’ www.bcdsoftware.com Google Suggest – Type ‘mi’ www.bcdsoftware.com The Hidden IFrame Trick – Don’t Use It! IFrames provide a way for the client to call the server in the background This is one method of implementing ‘AJAX style’ technology BUT – it has the following weaknesses: Relies on hidden HTML elements embedded somewhere in page – violating rule of separating layout from function Browser is inefficient in loading IFRAME content The user gets an annoying ‘click’ when hidden iframes make a server call – a source of confusion, at least. Support for asynchronous communications is weak www.bcdsoftware.com The Heart of AJAX - XMLHttpRequest XMLHttpRequest Browser component Available in Mozilla Firefox as a native object Available in IE as a ‘native’ ActiveX In IE browsers since 1998 Use it by writing Javascript code in your web page You can create an external Javascript file that embeds most of the AJAX functionality Good technical reference: http://developer.apple.com/internet/webcontent/xmlhttpreq.html www.bcdsoftware.com XMLHttpRequest Conversation Containing Web Page Script Area XMLHttpRequest Object Javascript Function Server Code (CGI program User Input Input Box or Java servlet, etc.) New Page Content Presentation Area (HTML etc.) www.bcdsoftware.com XMLHTTPRequest Object Details Methods: Open - Assigns destination URL, method, and other optional attributes of a pending request Send – Sends the request (as a URL), optionally with postable string or any page contents Events: Onreadystatechanged – Fired when Object’s ‘ready state’ changes – usually as a result of a Send method and server response Properties: readyState – value of 4 = ready Eg: if (xmlhttp.readyState != 4) return; Status – Numeric code returned by server: 200 = Successful 404 = Not Found Eg: if (xmlhttp.status == 200) // OK responseText – Contains response from Server in non-XML format responseXML -DOM-compatible document object of data returned from server www.bcdsoftware.com Code to Create XMLHTTPRequest Object var _ms_AJAX_Request_ActiveX = ""; // Holds type of ActiveX to instantiate – Global variable. function AJAX_Update(url, obj, func) { // code for Mozilla, etc. if (window.XMLHttpRequest) { var xmlhttp=new XMLHttpRequest(); // XMLHttpRequest is Mozilla (FireFox) Object } // code for IE else if (window.ActiveXObject) { // Instantiate the latest MS ActiveX Objects – ms_AJAX_Request_ActiveX is Microsoft Object if (_ms_AJAX_Request_ActiveX) { xmlhttp = new ActiveXObject(_ms_AJAX_Request_ActiveX); } else { // loops through the various versions of XMLHTTP to ensure we're using the latest var versions = ["Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]; for (var i = 0; i < versions.length ; i++) { try { // try to create the object. If it doesn't work, we'll try again // if it does work, we'll save a reference to the proper one to speed up future instantiations xmlhttp = new ActiveXObject(versions[i]); if (xmlhttp) { _ms_AJAX_Request_ActiveX = versions[i]; break; } } catch (objException) { // trap - try next one } } } } www.bcdsoftware.com Calling the XMLHTTPRequest Object – Part 1 // … Code from previous slide to instantiate AJAX object // (Continuation of AJAX_Update object).
Recommended publications
  • Aplicaciones Enriquecidas Para Internet: Estado Actual Y Tendencias
    Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas APLICACIONES ENRIQUECIDAS PARA INTERNET: ESTADO ACTUAL Y TENDENCIAS Miguel Alejandro Catalán López Asesorado por la Inga. Erika Yesenia Corado Castellanos de Lima Guatemala, enero de 2012 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA APLICACIONES ENRIQUECIDAS PARA INTERNET: ESTADO ACTUAL Y TENDENCIAS TRABAJO DE GRADUACIÓN PRESENTADO A JUNTA DIRECTIVA DE LA FACULTAD DE INGENIERÍA POR MIGUEL ALEJANDRO CATALÁN LÓPEZ ASESORADO POR LA INGA. YESENIA CORADO CASTELLANOS DE LIMA AL CONFERÍRSELE EL TÍTULO DE INGENIERO EN CIENCIAS Y SISTEMAS GUATEMALA, ENERO DE 2012 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA NÓMINA DE JUNTA DIRECTIVA DECANO Ing. Murphy Olympo Paiz Recinos VOCAL I Ing. Enrique Alfredo Beber Aceituno VOCAL II Ing. Pedro Antonio Aguilar Polanco VOCAL III Ing. Miguel Ángel Dávila Calderón VOCAL IV Br. Juan Carlos Molina Jiménez VOCAL V Br. Mario Maldonado Muralles SECRETARIO Ing. Hugo Humberto Rivera Pérez TRIBUNAL QUE PRACTICÓ EL EXAMEN GENERAL PRIVADO DECANO Ing. Murphy Olympo Paiz Recinos EXAMINADOR Ing. Juan Álvaro Díaz Ardavin EXAMINADOR Ing. Edgar Josué González Constanza EXAMINADOR Ing. José Ricardo Morales Prado SECRETARIO Ing. Hugo Humberto Rivera Pérez HONORABLE TRIBUNAL EXAMINADOR En cumplimiento con los preceptos que establece la ley de la Universidad de San Carlos de Guatemala, presento a su consideración mi trabajo de graduación titulado: APLICACIONES ENRIQUECIDAS PARA INTERNET: ESTADO ACTUAL
    [Show full text]
  • EMERGING TECHNOLOGIES Making the Web Dynamic: DOM and DAV
    Language Learning & Technology January 2004, Volume 8, Number 1 http://llt.msu.edu/vol8num1/emerging/ pp. 8-12 EMERGING TECHNOLOGIES Making the Web Dynamic: DOM and DAV Robert Godwin-Jones Virginia Comonwealth University Five years ago, in the January, 1998, issue of LLT, I wrote a column on Dynamic Web Page Creation, discussing options for Web interactivity and bemoaning incompatibilities among browsers. In the current column we will explore what has changed since 1998, new options that have arrived, and where we are with standards implementation. Scripting Transformations: CSS and the DOM Five years ago, "Cascading Style Sheets" (CSS) were just beginning to be used in designing Web pages; the specifications for CSS 1 were at that point about a year old. Since then, CSS Level 2 (May, 1998) is an approved recommendation (by the W3C), and CSS Level 3 modules have been issued as working drafts or candidate recommendations. More significant than the W3C activity is the fact that CSS has become the most widely used method for formatting Web pages. This development has only been possible because of CSS support in Web browsers. Beginning with the 5th generation browsers (Internet Explorer 5, Netscape 6, Opera 5), support for CSS 1 has been sufficiently robust and consistent to encourage developers of HTML authoring tools to incorporate CSS support. A helpful development that has served to encourage more wide-spread deployment of CSS has been the push to provide more accessible Web pages. Accessibility to users with special needs is much easier to code in a consistent and machine-readable fashion using CSS than in traditional HTML formatting, often built around the use of tables for formatting.
    [Show full text]
  • High Performance, Federated, Service-Oriented Geographic Information Systems
    High Performance, Federated, Service-Oriented Geographic Information Systems Ahmet Sayar Submitted to the faculty of the University Graduate School in partial fulfillment of the requirements for the degree Doctor of Philosophy in the Department of Computer Science, Indiana University February 2009 Accepted by the Graduate Faculty, Indiana University, in partial fulfillment of the requirements for the degree of Doctor of Philosophy. Doctoral Committee ________________________________ Prof. Geoffrey C. Fox (Principal Advisor) ________________________________ Prof. Randall Bramley ________________________________ Prof. Kay Connelly ________________________________ Prof. Yuqing (Melanie) Wu February 2, 2009 ii © 2009 AHMET SAYAR ALL RIGHTS RESERVED iii Acknowledgements This dissertation has been achieved with the encouragement, support, and assistance I received from many remarkable people. I would like to offer my sincere gratitude to them. First of all, I would like to thank my advisor Prof. Geoffrey C. Fox for his support, guidance and an exceptional research environment provided by him along the way of this endeavor. I deeply appreciate how much he contributed with his keen insight and extensive experience. His advice was always invaluable contribution to my academic life. I would also like to thank the members of the research committee for generously offering time, support, guidance and good will throughout the preparation and review of this dissertation. I am very thankful to Prof. Randall Bramley for his suggestions and remarkable inspiration, Prof. Kay Connelly and Prof. Yuqing (Melanie) Wu for their constructive comments, kindnesses and keen intellects. I want to thank all members of Community Grids Lab for the priceless moments that we shared together. I have had great pleasure of working with these wonderful people.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria Revision 1.0
    Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Revision 1.0 Rana Naim∗ Mohammad Fahim Nizam† Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Sheetal Hanamasagar‡ Jalal Noureddine§ Concordia University Montreal, Concordia University Montreal, Quebec, Canada Quebec, Canada [email protected] [email protected] Marinela Miladinova¶ Concordia University Montreal, Quebec, Canada [email protected] Abstract This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following criteria: secure programming practices, web application development, web service composition, OOP-based abstractions, reflection, aspect orientation, functional programming, declarative programming, batch scripting, and UI prototyping. We study these languages in the context of the above mentioned criteria and the level of support they provide for each one of them. Keywords: programming languages, programming paradigms, language features, language design and implementation 1 Introduction Choosing the best language that would satisfy all requirements for the given problem domain can be a difficult task. Some languages are better suited for specific applications than others. In order to select the proper one for the specific problem domain, one has to know what features it provides to support the requirements. Different languages support different paradigms, provide different abstractions, and have different levels of expressive power. Some are better suited to express algorithms and others are targeting the non-technical users. The question is then what is the best tool for a particular problem.
    [Show full text]
  • Lecture Notes on WEB and INTERNET TECHNOLOGIES
    G. PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY Accredited by NAAC with ‘A’ Grade of UGC, Approved by AICTE, New Delhi Permanently Affiliated to JNTUA, Ananthapuramu (Recognized by UGC under 2(f) and 12(B) & ISO 9001:2008 Certified Institution) Nandikotkur Road, Venkayapalli, Kurnool – 518452 Department of Computer Science and Engineering Lecture Notes On WEB AND INTERNET TECHNOLOGIES For III YEAR – II Sem B.Tech CSE (R15 Regulations) Web Technologies Internet The Internet is a global network of networks that enables computers of all kinds to directly and transparently communicate and share services throughout the world. In 1969 the precursor of Internet is born: ARPAnet. ARPA = Advanced Research Projects Agency sponsored by the American Department of Defense (DOD). Designed to connect military research centers. Distributed computer system able to survive a nuclear attack. Problem: ARPAnet could connect only networks of the same type. In 1970, ARPA starts developing the Transmission Control Protocol / Internet Protocol (TCP/IP), a technology for connecting networks of different types (produced by different companies). Other networks appear, such as CSNET and BITNET. The Internet = a network of networks. People around the world share ideas, information, comments, and stories. Popular services: Email (electronic mail) is the most popular service. You can send and receive mail (electronic text), faster and cheaper than surface mail. Example email addresses: III [email protected] Web browsing to find information. Example: www.gpcet.ac.in Features of the Internet Mailinglists: you can subscribe to lists on various subjects to receive emails, you can post (send) messages, you can unsubscribe. Some lists are moderated.
    [Show full text]
  • Samsteachyourself HTML, CSS, and Javascript
    Jennifer Kyrnin Julie Meloni SamsTeachYourself HTML, CSS, and JavaScript Third Edition All in One Sams Teach Yourself HTML, CSS, and JavaScript All in One, Third Edition Editor-in-Chief Copyright © 2019 by Pearson Education, Inc. Mark Taub All rights reserved. This publication is protected by copyright, and permission must be obtained Editor from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmis- sion in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. Mark Taber For information regarding permissions, request forms, and the appropriate contacts within the Managing Editor Pearson Education Global Rights & Permissions Department, please visit www.pearsoned.com/ permissions/. No patent liability is assumed with respect to the use of the information contained Sandra Schroeder herein. Although every precaution has been taken in the preparation of this book, the publisher Senior Project and authors assume no responsibility for errors or omissions. Nor is any liability assumed for Editor damages resulting from the use of the information contained herein. Lori Lyons ISBN-13: 978-0-672-33808-3 ISBN-10: 0-672-33808-4 Copy Editor Library of Congress Control Number: 2018953965 Kitty Wilson 01 18 Project Manager Trademarks Suganya Karuppasamy All terms mentioned in this book that are known to be trademarks or service marks have Indexer been appropriately capitalized. Pearson cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark Ken Johnson or service mark. Proofreader Warning and Disclaimer Abigail Manheim Every effort has been made to make this book as complete and as accurate as possible, but no Technical Editor warranty or fitness is implied.
    [Show full text]
  • Towards High Assurance HTML5 Applications
    Towards High Assurance HTML5 Applications Devdatta Akhawe Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2014-56 http://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-56.html May 7, 2014 Copyright © 2014, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Towards High Assurance HTML5 Applications by Devdatta Madhav Akhawe A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Dawn Song, Chair Professor David Wagner Professor Brian Carver Spring 2014 Towards High Assurance HTML5 Applications Copyright 2014 by Devdatta Madhav Akhawe 1 Abstract Towards High Assurance HTML5 Applications by Devdatta Madhav Akhawe Doctor of Philosophy in Computer Science University of California, Berkeley Professor Dawn Song, Chair Rich client-side applications written in HTML5 proliferate diverse platforms such as mobile devices, commodity PCs, and the web platform. These client-side HTML5 applications are increasingly accessing sensitive data, including users' personal and social data, sensor data, and capability-bearing tokens. Instead of the classic client/server model of web applications, modern HTML5 applications are complex client-side applications that may call some web services, and run with ambient privileges to access sensitive data or sensors.
    [Show full text]
  • Getting Started
    03_0132216353_ch02.qxd 7/26/06 10:21 AM Page 15 2 Getting Started In this chapter ■ 2.1 XMLHttpRequest Overview page 16 ■ 2.2 Cross-Browser XMLHttpRequest page 21 ■ 2.3 Sending Asynchronous Requests page 23 ■ 2.4 AJAX Without XMLHttpRequest page 29 ■ 2.5 Fallback Option 1: Sending a Request Using an IFrame page 31 ■ 2.6 Fallback Option 2: Sending a Request Using a Cookie page 36 ■ 2.7 Summary page 39 15 03_0132216353_ch02.qxd 7/26/06 10:21 AM Page 16 he foundation that makes AJAX possible is the communication layer with the Tserver. The most complete option for performing this communication is the JavaScript XMLHttpRequest object. If XMLHttpRequest is not suitable to you, hidden IFrames and cookies can also be used. We will examine both options later in this chapter. This chapter introduces you to the XMLHttpRequest object, showing you how to work around its implementation differences between browsers. After that, we make some actual page requests, both in a synchronous fashion and in an asyn- chronous fashion. This chapter finishes with some various fallback approaches that can be used if a browser doesn’t support XMLHttpRequest, including how to use IFrames and cookies as your communication channel. 2.1 XMLHttpRequest Overview Originally, Microsoft designed XMLHttpRequest to allow Internet Explorer (IE) to load XML documents from JavaScript. Even though it has XML in its name, XMLHttpRequest really is a generic HTTP client for JavaScript. With it, JavaScript can make GET and POST HTTP requests. (For POST requests, data can be sent to the server in a format of your choosing.) The main limitations to XMLHttpRequest are due to the browser security sandbox.
    [Show full text]
  • Dynamic Web Page Reporting System Based on the Browsed Content
    International Journal of Science and Research (IJSR) ISSN: 2319-7064 Impact Factor (2018): 7.426 Dynamic Web Page Reporting System based on the Browsed Content Abinesh J1, Guhan Muthu S2, Ganesh S S3, Batchu Sree Harsha4 Department of Computer Science and Engineering, R.M.K College of Engineering and Technology, Thruvallur, Tamil Nadu, India Abstract: The mission of this project is to generate dynamic web page based on the browsed content. It has several existing open source features such as voice read write,online suggestions and voice over control. It is educational research oriented application. It involves client-side dynamic web page processes the web page using HTML scripting running in the browser as it loads. 1. Introduction Voice model: In voice model, while seeing some online videos or referring some online blogs, you can understand It is a web Application which takes notes while referring some content from that online resource now you can tell online resources this Web application provides you the ease your known content to this model, then this model will of taking notes online and dynamically generates a reading convert your speech to text. Then you can add those mode(based on activity notes generated in write mode) and converted text to your activity notes . stores your data in database permanently.It also provides text based on voice recognition and voice over control features such as converting text-to-speech and vice versa. 2. Module Description We also have some extension, it is one of the important part in our web application. It will be used when we want to extract some information from some other website then you can use this extensions to get those information to our web application.
    [Show full text]
  • AJAX – Asynchronous Javascript and XML
    AJAX – Asynchronous JavaScript And XML Dr. Shaukat Ali Department of Computer Science University of Peshawar Overview What is AJAX ? Why AJAX ? AJAX Vs Classical Web Approach. How AJAX Works ? XMLHttpRequest ? How to make an AJAX application ? Live AJAX Examples. Back Then And You Get This! These Days … AJAX The magic spell behind this is : AJAX What is AJAX ? A programming language --- no. Ajax is a new technology --- not exactly “It is a methodology on using several web technologies together, in an effort to close the gap between the usability and interactivity of a desktop application and the ever demanding web application” What is AJAX? (cont) It is a technique used to develop interactive web applications that are able to process a user request immediately. Ajax can selectively modify a part of a page displayed by the browser, and update it without the need to reload the whole document with all images, menus, etc. What is AJAX ?(cont) The word "Asynchronous" in AJAX means that the request to the server will be made. The response will be made available by the server after it has finished processing the request, without having to wait for it explicitly, to come back. i.e. you don’t have to wait for an answer. Order of Developments Internet Explorer introduces the concept of IFrame element in 1996.(a technique that helps in loading the contents of a web page.) In the year 1998, Microsoft introduces another technique, called “Microsoft‘s Remote Scripting” as a replacement to the older techniques. Order of Developments A year later, in 1999, Microsoft introduces the XMLHttpRequest object, an ActiveX control, in IE 5.
    [Show full text]
  • Ajax: a New Programming Model for the Web
    Ajax: A new programming model for the Web Juan M. Gimeno, Josep M. Rib´o May, 2009 INDEX Contents 1. Rich Internet Applications 2. AJAX Components 3. Example 1: AJAX Flow 4. Example 2: Modifications 5. DOM: Document Object Model 6. Example 3: Modifications Using DOM 7. Example 4: Autocomplete 8. Prototype: a JavaScript library for Ajax 9. Example 5: Prototype 1 INDEX Two Splitted Worlds Rich Desktop Applications • Difficult to distribute and deploy • Rich user experience • Rapid response to the user • Off-line Classical Web Applications • Easy to distribute and deploy • Poor user experience • Delayed responses • On-line Can we get the best of these two worlds? 2 INDEX Rich Internet Applications • Rich user experience • Easy to distribute and deploy • Easy to actualize • Rich user experience • Rapid response to the user • Can work off-line • Multiplatform 3 INDEX RIA Platforms Adobe Flash • Was the creator of the RIA concept • More oriented to graphical designers than to developers Adobe Flex • Based on flash but oriented to developers • XML (MXML) + Action Script 3.0 Open Laszlo • XML (LZX) + ECMAScript • Compiles into Flash or AJAX Microsoft Silverlight • XML (XAML) + .NET (web version of WPF: Windows Presentation Foundation) Java Web Start • Autodeployable and updatable applications JavaFX ???? • JavaFX Script • JavaFX Mobile AJAX 4 INDEX AJAX • Based on standards and not owned by any company • AJAX stands for Asynchronous JavaScript And XML (term coined by Jesse James Garret in a famous article) • AJAX is not new but it was not popular until
    [Show full text]
  • Javascript Web Applications
    www.allitebooks.com www.allitebooks.com JavaScript Web Applications www.allitebooks.com www.allitebooks.com JavaScript Web Applications Alex MacCaw Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo www.allitebooks.com JavaScript Web Applications by Alex MacCaw Copyright © 2011 Alex MacCaw. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Mary Treseler Indexer: Fred Brown Production Editor: Holly Bauer Cover Designer: Karen Montgomery Copyeditor: Marlowe Shaeffer Interior Designer: David Futato Proofreader: Stacie Arellano Illustrator: Robert Romano Printing History: August 2011: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. JavaScript Web Applications, the image of a Long-eared owl, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. ISBN: 978-1-449-30351-8 [LSI] 1313086859 www.allitebooks.com Table of Contents Preface .
    [Show full text]