« Real Google VPs use Pine for email | Main | [etech06] Steve Yen (TrimPath) - Web Apps Without the Web »
March 9, 2006
[etech06] Disconnection Tolerant Ajax
the problem -
Web 2.0 mantra:
- Apps run on server
- client is just a communication and display device
Ajax assumes constant connectivity
Connectivity may be flaky or slow or unavailable.
Leads to a style of work that can be termed Frequently Connected Computing
- a presumption of network availability
- bot both planned and unplanned outages occur
- you want to continue some work during disconnections
drive-through-internet.org
To do this, apps have to be disconenction tolerant and delay tolerant.
Hw to do this?
- put more of the interface on a single page
- do serious error checking
- don't lose user input
Reduce number of pages -
In disconnected mode you don't want to:
- change pages for routine operations
- rely on server data for routine operations
- fail mysteriously or verbosely on update errors
Leads to single-page apps, but with Ajax backend.
- Download "working set" with page
- this can be done with background ajax
- pace requests properly until page populated
- Structure UI, e.g. using tab-styled navigation
- don't forget bookmarkability (update location.hash)
In error checking there are bugs in browsers you have to work around - error-protecting the error detection. Keep in mind that responses may not come back in the order they were sent.
Don't lose user input - can be kept as page state (e.g. in text areas); JavaScript state (in variables) - both of those methods have problems if the browser or system closes. You can store it in cookies or in some storage made available by a plugin (like flash SharedObject).
PANIC - Persistency for Ajax in Networks with Intermittent Connectivity.
You need to plan for data changing on the server while you're offline. Use conflict resolution strategies, like server-based generation numbers an dlocal generation numbers. THe cookie size limitation is a problem.
Proof of concept implemented on Prototype library, server parts based on Rails before_filter.
Technorati Tags: etech, etech06
Posted by oren at March 9, 2006 9:09 AM
Comments
Thanks for the quick notes!
The Drive-Thru URL that was not on my slides actually is:
http://www.drive-thru-internet.org/
Gruesse, Carsten
Posted by: cabo at March 9, 2006 11:33 AM
Post a comment
Thanks for signing in, . Now you can comment. (sign out)
(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)