XML Authors: Jason Bloomberg, Asim Saddal, Greg Schulz, Richard Schwendiman

Related Topics: AJAX & REA, Java, XML, Web 2.0, Open Web, Big Data Journal

AJAX & REA: Article

Optimize Front-End Web Performance to Ensure Highly Satisfying Experiences

Deliver fast, feature-rich applications that lead to customer satisfaction, brand loyalty and sales

Today's end users demand highly satisfying and interactive web experiences, such as automatically populated search suggestions and dynamic menus. To make applications more engaging, technologies like AJAX (Asynchronous JavaScript and XML) have emerged. AJAX works by dynamically displaying and allowing users to interact with presented information - think of when you enter a Google search and results are produced as you type. AJAX does this by sending data to, and retrieving data from, a server asynchronously in the background, without interfering with the display and behavior of an existing page.

While AJAX can make websites and web applications seem faster and more engaging, it also results in more application logic sitting in the web browser than ever before. This produces a greater impact for browsers overall on end-user experiences, which makes it critical to measure and optimize the performance of dynamic web applications at the browser level.

In this article, we'll show how consumers increasingly find website and web application performance issues unacceptable. We'll discuss the evolution of AJAX, and why "server-side" solutions alone are no longer sufficient to manage performance for complex AJAX web applications. Finally, we'll highlight industry developments that are making it possible for companies to ensure high-performing AJAX web applications and, consequently, more satisfying and profitable end-user interactions.

Web Application Performance Equals Money
Poor web application performance directly impacts customer loyalty, brand and sales. As response times increase, end-user interactions begin to slow and dissatisfaction rises, resulting in a staggering business impact. Consider the following:

  • Amazon has calculated that a page load slowdown of just one second could cost it $1.6 billion in sales each year.
  • Google found that slowing search response times by just four-tenths of a second would reduce the number of searches by eight million per day - a sizeable amount.
  • Compuware's own findings reveal that increasing load times by two seconds increases abandonment rates by eight percent.

This is known as the "Google Effect," where customers expect all the web applications they interact with to be as fast and engaging as Google. For the average user, 0.1 seconds is an instantaneous, acceptable response, similar to what they experience with a Google search. Not surprisingly, companies are investing heavily to make sure they deliver highly satisfying, feature-rich websites and applications. One approach they are taking is adopting web development techniques like AJAX for the front-end of their applications.

The Evolution of AJAX
In 2005, Asynchronous JavaScript and XML, also known as AJAX, evolved as a means of delivering faster, more interactive and engaging end-user experiences with feature-rich applications. With AJAX, application processing is an "open connection" between the browser and the server, which enables information to be delivered to users dynamically as users request it. 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 an application would make it slower, but the opposite is true.

Technically, AJAX is a method for exchanging data asynchronously between browser and server to avoid full page reloads. Instead of loading a web page at the start of a 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 back-end server.

With AJAX, feature-rich web applications can now be dynamically served up to end users much more quickly and efficiently than in the past. In contrast, in the 1990s, most web sites were based on complete HTML pages. Each user action required that the page be reloaded from the server, or a new page loaded. This process was highly inefficient, increasing end-user wait times due to excessive server round-trips.

Solving the AJAX Performance Management Challenge
The benefits of AJAX are clear, but AJAX technologies also bring with them some performance management challenges. "Server-side" solutions that monitor server response times are blind to the AJAX engine, because it sits in the browser. 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. So a lot more time and processing is being spent in the browser and server-side monitoring solutions do not capture this. Not being able to proactively manage performance across browsers could hamper the very speed organizations are trying to enhance by using AJAX.

Testing and optimizing "traditional" page-based web applications is not too hard to do; you simply test the individual URLs. This is great for traditional websites but doesn't work anymore for AJAX applications which provide most of their functionality on a single page or URL. Only a very small time is actually spent in the initial page load. The rest is spent in JavaScript, XHR Calls and DOM Manipulations triggered by user actions on the same URL.

To remedy this problem, new solutions are available that enable organizations to test and diagnose AJAX web application performance issues. Leveraging a new generation of application performance management (APM) centered on the end-user experience, these solutions provide organizations with a bird's eye view into how dynamic AJAX web applications are performing for real end users across a variety of browser types. This empowers organizations to pinpoint and address browser-specific problems that could be inhibiting a world-class, end-user experience, including long-running Java script code, excessive DOM calls, slow AJAX invocations or problems with rendering. In essence, organizations can analyze forensics on all activities within dynamic page components as they are presented to end users.

With more application logic sitting in the web browser than ever before, it is critical to measure and optimize the performance of dynamic web applications at the browser level. This is essential to keeping customers loyal and attracting new ones. Fortunately, today organizations can glean tremendous insight into client-side performance issues and immediately tweak performance for AJAX-based websites and web applications. By addressing the complexity created by multiple browsers at the edge of the Internet, organizations can truly leverage all that AJAX has to offer - delivering fast, feature-rich applications that lead to customer satisfaction, brand loyalty and sales.

More Stories By Matthew Zanderigo

Matthew Zanderigo is a product marketing manager with Compuware's Application Performance Management (APM) business unit. He specializes in market intelligence, business development and market research. Matthew can be reached at: matthew.zanderigo@compuware.com.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.