Advanced Ajax: Architecture and Best Practices

2.67 avg rating
( 3 ratings by Goodreads )
 
9780131350649: Advanced Ajax: Architecture and Best Practices

“I very much enjoyed how this book covers the full Ajax application lifecycle and not only coding techniques. Anyone who is looking to become a professional front-end developer will appreciate the architectural insight and best practices delivered by this book.”  — Andi Gutmans, Co-Founder & Co-Chief Technology Officer of Zend Technologies

 

Mission-Critical Ajax: Maximizing Scalability, Performance, Security, Reliability, and Maintainability

 

Advanced Ajax: Architecture and Best Practices is the definitive guide to building business-critical, production-quality Web applications with Ajax. Shawn M. Lauriat systematically addresses the design, architecture, and development issues associated with Ajax, offering proven patterns and robust code examples available in no other book. You’ll find best practices for addressing the full spectrum of issues enterprise Ajax developers face: scalability, performance, security, reliability, flexibility, maintainability, and reusability.

 

Writing for experienced Web developers, Lauriat delivers fresh ideas and elegant solutions: meaty technical content, presented with exceptional clarity. Among the many topics he covers in unprecedented depth: cleanly implementing JavaScript custom events to reduce coupling and to enhance flexibility; overcoming Ajax’s traditional accessibility limitations; reducing network latency through compression and other techniques; and much more. Coverage includes 

  • Planning Ajax interfaces for simplicity, clarity, and intuitiveness
  • Creating scalable, maintainable architectures for client-side JavaScript
  • Using the latest tools to profile, validate, and debug client-side code
  • Architecting the server side for security and functionality, while restricting loaded data, objects, and actions to current requests
  • Protecting against the most widespread and significant Ajax security risks
  • Optimizing every component of an Ajax application, from server-side scripts to database interactions
  • Introducing cutting-edge Ajax: game development, Ajax with canvas, and Ajax for enterprise applications

About the Web Site

This book’s companion Web site (http://advancedajax.frozen-o.com) doesn’t just provide all the code: It shows code examples in action, as building blocks of a real Web application interface.

"synopsis" may belong to another edition of this title.

About the Author:

Shawn M. Lauriat is owner and lead developer of Frozen O Productions. He recently joined IBM as a senior PHP engineer for IBM Rational BuildForge when his employer, BuildForge, was acquired by IBM. Lauriat is a Zend Certified Engineer.

Excerpt. © Reprinted by permission. All rights reserved.:

Introduction

Introduction

As the centerpiece of rich web application development, Ajax brings web interfaces using XHTML and CSS up to desktop application interface standards without the interfaces having to rely on plugins such as Flash or Java. Prior to JavaScript-based server interactions, interfaces had to rely solely on full-page loading, regardless of how one might have hacked a page into appearing otherwise.

Until Ajax development came along (which, incidentally, started in implementation many years before the coining of the term itself), client-side development also had no thread support. Threading, in a nutshell, allows the spawning of new lines of logic, completely independent of those before, adjacent to, or after it. C, Java, Perl, and many other languages have had this support for many years (in some cases) before client-side scripting came along in any fashionable sense. The closest JavaScript had to offer came in the form of the setTimeout and setInterval library functions, which required delayed, seemingly parallel execution rather than the actual spawning of processes. While Ajax still does not provide true threading, it does bring JavaScript one step closer.

0.1 Ajax, the Acronym

The words Asynchronous Javascript And XML make the acronym Ajax. In order to fully understand Ajax in meaning and implementation, you must understand each of its components. Even when using synchronous requests, or using JSON or some other transportation method, knowing the core aspects of Ajax can only help development practices.

Since the initial boom in popularity and resulting hype surrounding Ajax, it can get quite easy to forget what Ajax actually means and what it doesn't. Ajax does exist as an incredibly useful method of communicating with the server directly from JavaScript. It does not mean anything more than that, even if its usage can open up development methods previously unexplored in web application development.

0.1.1 Asynchronous

When requests get submitted to the server, they have no direct impact on any other simultaneous or subsequential requests. In other words, just because a request gets submitted before another request does not in any way ensure that it will receive its response from the server first. Despite the seemingly simplistic concept, asynchronistic behavior in applications often gets ignored, because asynchronicity introduces an entirely new level of complexity to client-side development.

Many Ajax-based web applications use the asynchronous flag of the XMLHttpRequest object solely to handle network errors (sometime without even intending to do so) rather than to keep functionality enabled during a given request. While the direct JavaScript-to-server communication provided by the XMLHttpRequest forms the core of the technology, the asynchronous behavior it also can provide often plays the part of the unsung hero, as it brings a wealth of flexibility and strength to client-side web applications.

0.1.2 JavaScript

JavaScript (based on ECMAScript,1 though possibly vice-versa depending on whom you ask) has many implementations, not only in various web browsers, but also in game development and other applications needing an easy-to-learn scripting language. This book focuses on the implementation of JavaScript in various web browsers. These implementations of JavaScript have a wide variety of incompatibilities, from Mozilla's SpiderMonkey2 to Safari's WebKit to Jscript and more.

1Ecma International, an industry association devoted to standardizing "Information and Communication Technology (ICT) and Consumer Electronics (CE)" (What is Ecma International, http://www.ecma-international.org/memento/index.html), maintains the ECMA-262 standard (http://www.ecma-international.org/publications/standards/Ecma-262.htm) which defines the scripting language of ECMAScript.
2http://developer.mozilla.org/en/docs/SpiderMonkey—The Gecko rendering engine's JavaScript engine written in C is used by Mozilla-based browsers such as Firefox (http://www.mozilla.com/products/firefox), SeaMonkey (http://www.mozilla.org/projects/seamonkey), Camino (http://www.caminobrowser.org), and Epiphany (http://www.gnome.org/projects/epiphany).

Those used to server-side development or OOP (Object-Oriented Programming) may initially get thrown off by JavaScript's prototype-based object model. This, in a very basic sense, means that functions and methods called within a certain object get called in the context of that object. This happens because rather than an instance having an explicit tie to its definition, its prototype merely lays out the basis for its structure and characteristics.

The JavaScript object, XMLHttpRequest (originally an ActiveX control created by Microsoft), provides the key to the entire technology conglomeration now referred to as Ajax. It provides an interface by which JavaScript can send and receive data to and from the server without requiring a full page load. Other methods exist for sending and receiving data, but they each use aspects of HTML and XHTML in ways other than designed, and, as such (while still useful in certain circumstances), they exist only as hacks.

0.1.3 XML

XML stands for eXtensible Markup Language, as defined by the World Wide Web Consortium (W3C; http://w3.org), and provides a very flexible, generic text format. If that seems to be a rather broad description, it should be .XML now uses spanning data storage, communication, definition, description, and presentation. In Ajax, XML refers to data transportation. The XMLHttpRequest object provides another useful bit of functionality along with its HTTP methods: When the server returns XML, the XMLHttpRequest object provides the responseXML attribute, which is a read-only XML document of the response.

Using XML, a very simple response from the server, with two named variables (var1 and var2) each set to string values ("first value" and "second value," respectively), might look like the following:

first value second value

Many Ajax-driven web applications use other formats of transporting data to and from the server, including:

  • URL-encoded—Where data takes the form used by HTTP POST requests, as during a form submission such as var1=first%20value&var2=second%20value.
  • Raw text—Usually for very simple data, or when responses return the exact markup for the JavaScript to insert into the current document:

  • JavaScript Object Notation (JSON)—An increasingly popular format, JSON formats data into a subset of raw JavaScript. This not only has the advantage of instant parsing by client-side code, but also it tends to take up less bandwidth than more verbose, globally understood formats such as XML. In addition, it does so without losing the data structure as URL-encoded value pairs do:

    { var1:"first value", var2:"second value" }

0.2 This Book's Intentions

Now that the technology has progressed into general usage, the Ajax developer community has a need for books covering architecture, tuning, alternative uses of Ajax, and more. Many books and tutorials have provided good introductions, and they can show you several different ways of implementing find-as-you-type, chat widgets, and RSS/ATOM feed readers. Many of the resources out there explain, in great detail, the history of Ajax and its multiple incarnations before today's and the implementation centered on the XMLHttpRequest JavaScript object. See Appendix A, "Resources," at the end of this book for some choice suggestions.

This book, instead, looks at using Ajax to create rich, browser-based interfaces for enterprise-level web applications, taking into account the flexibility, reusability, scalability, and maintainability necessary for such an undertaking. Ajax does not exist in this book as the latest and greatest acronym to hit web development. It instead exists as a tool like any other—extremely useful in some instances and totally wrong in others.

For example, many reference sites would find themselves hard-pressed to use Ajax for anything of particular value to their users. Manuals and other reference materials that have large blocks of text for the user to read might come up with an Ajax reader, allowing a single, scrollable pane that late-loads content as the user scrolls though it. This sounds cool, but it destroys the ability to search the page for a particular word or phrase. It also removes the ability to read something once you've lost your Internet connection. Some reference sites add auto-suggestions to their search fields, but those tend to react too slowly for general usage unless you pre-load the entire dictionary into the browser's memory, potentially wasting a great deal of bandwidth for a feature that only a few people mi...

"About this title" may belong to another edition of this title.

Top Search Results from the AbeBooks Marketplace

1.

Shawn M. Lauriat
Published by Prentice Hall (2007)
ISBN 10: 0131350641 ISBN 13: 9780131350649
New Paperback Quantity Available: 1
Seller
Ergodebooks
(RICHMOND, TX, U.S.A.)
Rating
[?]

Book Description Prentice Hall, 2007. Paperback. Book Condition: New. 1. Bookseller Inventory # DADAX0131350641

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 16.49
Convert Currency

Add to Basket

Shipping: US$ 3.99
Within U.S.A.
Destination, Rates & Speeds

2.

Lauriat, Shawn M.
Published by Prentice Hall
ISBN 10: 0131350641 ISBN 13: 9780131350649
New Quantity Available: 1
Seller
Ohmsoft LLC
(Lake Forest, IL, U.S.A.)
Rating
[?]

Book Description Prentice Hall. Book Condition: Brand New. Ships from USA. FREE domestic shipping. Bookseller Inventory # 0131350641

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 23.43
Convert Currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, Rates & Speeds

3.

Shawn M. Lauriat
Published by Prentice Hall (2007)
ISBN 10: 0131350641 ISBN 13: 9780131350649
New Paperback Quantity Available: 1
Seller
Irish Booksellers
(Rumford, ME, U.S.A.)
Rating
[?]

Book Description Prentice Hall, 2007. Paperback. Book Condition: New. book. Bookseller Inventory # 0131350641

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 30.82
Convert Currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, Rates & Speeds

4.

Shawn M.; Lauriat
Published by Prentice Hall (2007)
ISBN 10: 0131350641 ISBN 13: 9780131350649
New Taschenbuch Quantity Available: 1
Seller
unifachbuch
(Köln, NRW, Germany)
Rating
[?]

Book Description Prentice Hall, 2007. Taschenbuch. Book Condition: Neu. Gebraucht - Wie neu Unbenutzt. Schnelle Lieferung, Kartonverpackung. Abzugsfähige Rechnung. Bei Mehrfachbestellung werden die Versandkosten anteilig erstattet. - Sehr guter Zustand - UNBENUTZT - schnelle Lieferung, abzugsfähige Rechnung liegt bei 360 pp. Deutsch. Bookseller Inventory # INF1000037448

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 2.35
Convert Currency

Add to Basket

Shipping: US$ 29.81
From Germany to U.S.A.
Destination, Rates & Speeds

5.

Lauriat, Shawn M.
Published by Prentice Hall (2007)
ISBN 10: 0131350641 ISBN 13: 9780131350649
New Paperback Quantity Available: 2
Seller
Murray Media
(North Miami Beach, FL, U.S.A.)
Rating
[?]

Book Description Prentice Hall, 2007. Paperback. Book Condition: New. Bookseller Inventory # P110131350641

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 42.12
Convert Currency

Add to Basket

Shipping: US$ 2.99
Within U.S.A.
Destination, Rates & Speeds

6.

Lauriat, Shawn M.
Published by Prentice Hall
ISBN 10: 0131350641 ISBN 13: 9780131350649
New PAPERBACK Quantity Available: 1
Seller
Cloud 9 Books
(Wellington, FL, U.S.A.)
Rating
[?]

Book Description Prentice Hall. PAPERBACK. Book Condition: New. 0131350641 New Condition. Bookseller Inventory # NEW6.0046968

More Information About This Seller | Ask Bookseller a Question

Buy New
US$ 59.99
Convert Currency

Add to Basket

Shipping: US$ 4.99
Within U.S.A.
Destination, Rates & Speeds