AJAX Programming Overview. Introduction. Overview

Similar documents
AJAX: Asynchronous Event Handling Sunnie Chung

Web Application Security

Part of this connection identifies how the response can / should be provided to the client code via the use of a callback routine.

We aren t getting enough orders on our Web site, storms the CEO.

AJAX Workshop. Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries

Outline. AJAX for Libraries. Jason A. Clark Head of Digital Access and Web Services Montana State University Libraries

Working with Javascript Building Responsive Library apps

Lesson 12: JavaScript and AJAX

Abstract. 1. Introduction. 2. AJAX overview

Web Application with AJAX. Kateb, Faris; Ahmed, Mohammed; Alzahrani, Omar. University of Colorado, Colorado Springs

Welcome to the Ajax Bible! This is the home of all things Ajax.

Term Paper. P r o f. D r. E d u a r d H e i n d l. H o c h s c h u l e F u r t w a n g e n U n i v e r s i t y. P r e s e n t e d T o :

Ajax Enabled Web Application Model with Comet Programming

Programming for Digital Media. Lecture 7 JavaScript By: A. Mousavi and P. Broomhead SERG, School of Engineering Design, Brunel University, UK

REST AND AJAX. Introduction. Module 13

Credits: Some of the slides are based on material adapted from

Chapter 10 Web-based Information Systems

Etanova Enterprise Solutions

Determining the Best Approach

Reading How the Web Works

Web 2.0, AJAX and RIAs

Using Development Tools to Examine Webpages

Choosing the web s future. Peter-Paul Koch Van Lanschot, 9 February 2017


Web 2.0 Käyttöliittymätekniikat

White Paper AJAX. for Graphics-Intensive Web Applications

XML: the document format of the future?

GRITS AJAX & GWT. Trey Roby. GRITS 5/14/09 Roby - 1

Web 2.0 and AJAX Security. OWASP Montgomery. August 21 st, 2007

Mobile & More: Preparing for the Latest Design Trends

CS WEB TECHNOLOGY

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Adobe Marketing Cloud Best Practices Implementing Adobe Target using Dynamic Tag Management

COPYRIGHTED MATERIAL. Part I: Getting Started. Chapter 1: Introducing Flex 2.0. Chapter 2: Introducing Flex Builder 2.0. Chapter 3: Flex 2.

Discovering the Mobile Safari Platform

Assignment: Seminole Movie Connection


8/19/2018. Web Development & Design Foundations with HTML5. Learning Objectives (1 of 2) Learning Objectives (2 of 2) Helper Applications & Plug-Ins

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

Create-A-Page Design Documentation

Research Report. Developing Highly-Responsive User Interfaces with DHTML and Servlets. Katherine Betz, Avraham Leff, James T.

CSCE 120: Learning To Code

White Paper: Delivering Enterprise Web Applications on the Curl Platform

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications

Developing Ajax Web Apps with GWT. Session I

Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise)

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

AJAX: Rich Internet Applications

User Interaction: jquery

Embracing HTML5 CSS </> JS javascript AJAX. A Piece of the Document Viewing Puzzle

Life, the Universe, and CSS Tests XML Prague 2018

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

Group 1. SAJAX: The Road to Secure and Efficient Applications. - Final Project Report -

Introduction to AJAX Bringing Interactivity & Intuitiveness Into Web Applications. By : Bhanwar Gupta SD-Team-Member Jsoft Solutions

Making Ajax Easy With Model-Glue. Joe Rinehart Firemoss, LLC

2/6/2012. Rich Internet Applications. What is Ajax? Defining AJAX. Asynchronous JavaScript and XML Term coined in 2005 by Jesse James Garrett

TIME SCHEDULE MODULE TOPICS PERIODS. HTML Document Object Model (DOM) and javascript Object Notation (JSON)

Introduction Haim Michael. All Rights Reserved.

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

Cameron Stewart Technical Publications Product Manager, xmatters. MadCap Flare native XML singlesource content authoring software

Web 2.0 and the Semantic Web

CSC 443: Web Programming

Web Server Setup Guide

Happy Birthday, Ajax4jsf! A Progress Report

Web Architecture Review Sheet

Azon Master Class. By Ryan Stevenson Guidebook #10 Google and YouTube Marketing

JavaScript Specialist v2.0 Exam 1D0-735



Web Programming Paper Solution (Chapter wise)

The goal of this book is to teach you how to use Adobe Integrated

of making things look better with CSS, and you have a much better platform for interface development.

FUSE Ajax Tutorial. 07/06 Version 1.2

Web Programming Paper Solution (Chapter wise)

extc Web Developer Rapid Web Application Development and Ajax Framework Using Ajax


Financial. AngularJS. AngularJS.

Everyone agrees that the World Wide Web is taking

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007

The University of Bradford Institutional Repository

RESPONSIVE WEB DESIGN IN 24 HOURS, SAMS TEACH YOURSELF BY JENNIFER KYRNIN

Decision on opposition

Visualforce & Lightning Experience

Financial. AngularJS. AngularJS. Download Full Version :

AJAX. Lab. de Bases de Dados e Aplicações Web MIEIC, FEUP 2010/11. Sérgio Nunes

Adding content to your Blackboard 9.1 class

Module 5: Javascript, Cookies COM 420

GRAPHIC WEB DESIGNER PROGRAM

Programming Fundamentals of Web Applications

KINGS COLLEGE OF ENGINEERING 1

When created, it is given a name.

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Live Guide Co-browsing

HTML, CSS And JavaScript All In One, Sams Teach Yourself: Covering HTML5, CSS3, And JQuery (2nd Edition) Ebooks Free

Rethinking Usability for Responsive Web Design

JavaScript & DHTML Cookbool(

Internet: An international network of connected computers. The purpose of connecting computers together, of course, is to share information.

Transcription:

AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications. AJAX enables complex interactive Web site elements to remain loaded while switching between pages, so that they do not have to be served up separately each time a visitor navigates to another site page. This Personal Learning Resource gives a brief overview of AJAX, discusses its advantages and disadvantages, and also lists numerous other resources for additional training on this development method. AJAX (Asynchronous JavaScript And XML) Key Components AJAX itself is not considered to be a unique technology, but a Web development method incorporating features from several different technologies and languages. AJAX uses a communication technology (typically SOAP and XML) to send and receive an asynchronous request/response to the server, and then leverages presentation technologies (JavaScript, DOM, HTML, and CSS) to process the response. The AJAX method implements the following technologies to ease the process of producing consistent and interactive Web pages: 1. XHTML (HTML) and CSS, for marking up and styling information. 2. The DOM accessed with a client-side scripting language, especially ECMAScript implementations like JavaScript andjscript, to dynamically display and interact with the information presented. 3. The XMLHttpRequest object to exchange data asynchronously with the Web server. In some AJAX frameworks and in certain situations, an iframe object is used instead of the XMLHttpRequest object to exchange data with the Web server. 4. XML is commonly used as the format for transferring data back from the server, although any format will work, including preformatted HTML, plain text, JSON and even EBML. Using Ajax technologies in Web applications provides many challenges for developers interested in adhering to WAI accessibilityguidelines. Developers need to provide fallback options for users on other platforms or browsers, as most methods of AJAX implementation rely on features only present in desktop graphical browsers. Advantages Portability AJAX applications use well-documented features present in all major browsers on most existing platforms. Though this situation could feasibly change in the future, at the moment, AJAX applications are effectively cross-platform. While the Ajax platform is more restricted than the Java platform, current AJAX applications effectively fill part of the one-time niche of Java applets: extending the browser with lightweight mini-applications. Interactivity Ajax applications are mainly executed on the user's machine, by manipulating the current page within their browser using document object model methods. AJAX can be used for a multitude of tasks such as updating or deleting records; expanding Web forms; returning simple search queries; or editing category trees all without the requirement to fetch a full page of HTML each time a change is made. Generally only small requests are required to be 1

sent to the server, and relatively short responses are sent back. This permits the development of more interactive applications featuring more responsive user interfaces due to the use of DHTML techniques. Concerns/Issues Browser Usability One major complaint voiced against the use of AJAX in Web applications is that it might easily break the expected behavior of the browser's back button. The different expectations between returning to a page which has been modified dynamically versus the return to a previous static page might be a subtle one. Users generally expect that clicking the back button in Web applications will undo their last state change and in AJAX applications this might not be the case. Developers have implemented various solutions to this problem, most of which revolve around creating or using invisible iframes to invoke changes that populate the history used by a browser's back button. A related issue is that dynamic Web page updates make it difficult for a user to bookmark a particular state of the application. Solutions to this problem exist, many of which use the URL fragment identifier to keep track of, and allow users to return to, the application in a given state. This is possible because many browsers allow JavaScript to update the fragment identifier of the URL dynamically, so that AJAX applications can maintain it as the user changes the application's state. This solution also improves back-button support. Response time Network latency or the interval between user request and server response needs to be considered carefully during AJAX development. Without clear feedback to the user, smart preloading of data, and proper handling of the XMLHttpRequest object, users might experience delay in the interface of the Web application. The use of visual feedback to alert the user of background activity and/or preloading of content and data are often suggested solutions to these latency issues. JavaScript While no browser plug-in is required for AJAX, it requires users to have JavaScript enabled in their browsers. This applies to all browsers that support AJAX except for Microsoft Internet Explorer 6 and below which additionally require ActiveX to be enabled, as the XMLHttpRequest object is implemented with ActiveX in this browser. As with DHTML applications, AJAX applications must be tested rigorously to deal with the quirks of different browsers and platforms. A number of programming libraries have become available as AJAX has matured that can help ease this task. Likewise, techniques have been developed to assist in designing applications which degrade gracefully and offer alternative functionality for users without JavaScript enabled. Web developers use AJAX in some instances to provide content only to specific portions of a Web page, allowing data manipulation without incurring the cost of re-rendering the entire page in the Web browser. Non-AJAX users would optimally continue to load and manipulate the whole page as a fallback, allowing the developers to preserve the experience of users in non-ajax environments (including all relevant accessibility concerns) while giving those with capable browsers a much more responsive experience. If anything about current interaction design can be called glamorous, it s creating Web applications. After all, when was the last time you heard someone rave about the interaction design of a product that wasn t on the Web? (Okay, besides the ipod.) All the cool, innovative new projects are online. 2

Despite this, Web interaction designers can t help but feel a little envious of our colleagues who create desktop software. Desktop applications have a richness and responsiveness that has seemed out of reach on the Web. The same simplicity that enabled the Web s rapid proliferation also creates a gap between the experiences we can provide and the experiences users can get from a desktop application. That gap is closing. Take a look at Google Suggest. Watch the way the suggested terms update as you type, almost instantly. Now look at Google Maps. Zoom in. Use your cursor to grab the map and scroll around a bit. Again, everything happens almost instantly, with no waiting for pages to reload. Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what s possible on the Web. Defining Ajax Ajax isn t a technology. It s really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates: standards-based presentation using XHTML and CSS; dynamic display and interaction using the Document Object Model; data interchange and manipulation using XML and XSLT; asynchronous data retrieval using XMLHttpRequest; and JavaScript binding everything together. The classic web application model works like this: Most user actions in the interface trigger an HTTP request back to a web server. The server does some processing retrieving data, crunching numbers, talking to various legacy systems and then returns an HTML page to the client. It s a model adapted from the Web s original use as a hypertext medium, but as fans of The Elements of User Experience know, what makes the Web good for hypertext doesn t necessarily make it good for software applications. 3

Figure 1: The traditional model for web applications (left) compared to the Ajax model (right). This approach makes a lot of technical sense, but it doesn t make for a great user experience. While the server is doing its thing, what s the user doing? That s right, waiting. And at every step in a task, the user waits some more. Obviously, if we were designing the Web from scratch for applications, we wouldn t make users wait around. Once an interface is loaded, why should the user interaction come to a halt every time the application needs something from the server? In fact, why should the user see the application go to the server at all? How Ajax is Different An Ajax application eliminates the start-stop-start-stop nature of interaction on the Web by introducing an intermediary an Ajax engine between the user and the server. It seems like adding a layer to the application would make it less responsive, but the opposite is true. Instead of loading a webpage, at the start of the session, the browser loads an Ajax engine written in JavaScript and usually tucked away in a hidden frame. This engine is responsible for both rendering the interface the user sees and communicating with the server on the user s behalf. The Ajax engine allows the user s interaction with the application to happen asynchronously independent of communication with the server. So the user is never staring at a blank browser window and an hourglass icon, waiting around for the server to do something. 4

Figure 2: The synchronous interaction pattern of a traditional web application (top) compared with the asynchronous pattern of an Ajax application (bottom). Every user action that normally would generate an HTTP request takes the form of a JavaScript call to the Ajax engine instead. Any response to a user action that doesn t require a trip back to the server such as simple data validation, editing data in memory, and even some navigation the engine handles on its own. If the engine needs something from the server in order to respond if it s submitting data for processing, loading additional interface code, or retrieving new data the engine makes those requests asynchronously, usually using XML, without stalling a user s interaction with the application. Who s Using Ajax Google is making a huge investment in developing the Ajax approach. All of the major products Google has introduced over the last year Orkut, Gmail, the latest beta version of Google Groups, Google Suggest, and Google Maps are Ajax applications. (For more on the technical nuts and bolts of these Ajax implementations, check out these excellent analyses of Gmail, Google Suggest, and 5

Google Maps.) Others are following suit: many of the features that people love in Flickr depend on Ajax, and Amazon s A9.com search engine applies similar techniques. These projects demonstrate that Ajax is not only technically sound, but also practical for real-world applications. This isn t another technology that only works in a laboratory. And Ajax applications can be any size, from the very simple, single-function Google Suggest to the very complex and sophisticated Google Maps. At Adaptive Path, we ve been doing our own work with Ajax over the last several months, and we re realizing we ve only scratched the surface of the rich interaction and responsiveness that Ajax applications can provide. Ajax is an important development for Web applications, and its importance is only going to grow. And because there are so many developers out there who already know how to use these technologies, we expect to see many more organizations following Google s lead in reaping the competitive advantage Ajax provides. Moving Forward The biggest challenges in creating Ajax applications are not technical. The core Ajax technologies are mature, stable, and well understood. Instead, the challenges are for the designers of these applications: to forget what we think we know about the limitations of the Web, and begin to imagine a wider, richer range of possibilities. 6