article development led by
Lacking proper browser support, what steps
can we take to debug production AJAX code?
BY eRic schRock
has a curious history. What
began as a simple tool to let Web developers add
dynamic elements to otherwise static Web pages has
since evolved into the core of a complex platform for
delivering Web-based applications. In the early days,
the language’s ability to handle failure
silently was seen as a benefit. If an image rollover failed, it was better to preserve a seamless Web experience than
to present the user with unsightly error dialogs.
This tolerance of failure has become a central design principle of
modern browsers, where errors are
silently logged to a hidden error console. Even when users are aware of the
console, they find only a modicum of
information, under the assumption
that scripts are small and a single
message indicating file and line number should be sufficient to identify the
source of a problem.
This assumption no longer holds
true, however, as the proliferation of
sophisticated AJAX applications has
Scripts are large and complex,
spanning a multitude of files and making extensive use of asynchronous,
dynamically instantiated functions.
Now, at best, script execution failure
results in an awkward experience. At
worst, the application ceases to work
or corrupts server-side state. Tacitly
accepting script errors is no longer
appropriate, nor is a one-line number
and message sufficient to identify a
failure in a complex AJAX application.
Accordingly, the lack of robust error
messages and native stack traces has
become one of the major difficulties
with AJAX development today.
The severity of the problem depends on the nature of the debugging
environment. During development,
engineers have nearly unlimited freedom. They can recreate problems at
will, launch an interactive debugger,
or quickly modify and deploy test
code, providing the ability to form and
test hypotheses rapidly in order to determine the root cause of a problem.
Everything changes, however, once an
application leaves this haven for the