Live Blogging The Future of Web Appspart VIII
Greater ExpectationsReality-Checking the AJAX Web Application Architecture
Steffen Meschkat - Google Maps
Steven Crossan (will be on panel, later)
AJAX: What's in the name? All the parts are nonessential or redundant. Boils down to client-side scripting, done the right way (but the name CSS is taken). A bad name, however, is better than no name.
REST and SSSS apps Client side, only 2 events: click a link and submit a form
The action, each time, is to replace the entire document
Applicaton specific behaviour resides on the server
AJAX applications Scripted event handlers are embedded in client-side documents
In reaction to specific events, the current docuement is updated, possibly but not necessarily involving additionally requested data from the server
Application-specific behaviour is implemented on the client side
Consequences1. Sophisticated User Interaction
Display can be partially updated, modified, animated
Complex manipulations are possible
User interaction like in 1990
2. Client Side Session State
Transient session state is managed on the client
Persistent user state maintained on the server
This corrects a long standing architectural abberation
Note: Rants a bit about server-side session state (but for good reason)
Intermission: The bad thing about doing something right the first time is that nobody appreciates how difficult it was. Web technloogies give us plenty of opportunities to appreciate how difficult it was.
AJAX: What's really in itCSS: layout, fonts, colors. Seems simple, but is very complex underneath.
DocumentObjectModel: Library allowing what is viewed by the user
JavaScript: Just two words: semicolon insertion
HTTP
Data Marshaling
Faust: Who art thou then?
Practical consequencesCross browser compatibility Different implementations of all mentioned technologies
Different (but always many) bugs
Enforces good libraries
Separation of interaction logic and application logic Implemented in different languages
Separated by flexible and extensible protocol
Seamful integration: They have form. They are seen, sometimes.
Steffen spends a few minutes telling why he likes JavaScript.
Steffen spends a few minutes talking about JavaScript code on Google Maps.
Challenges Deployment Compilation/packaging, modularization, cache control
Bookmarking and History in applications quite pedestrian, but so are the browsers
Graceful DegradationSmart reuse od format helps a lot
Frameworks Or, rather, to resist the temptation to build one
Because there is one, and it is the browser.