OfflineAppsSummit2006
Session Title
Offline Web Applications
Session Leader
Robert O'Callahan
Summary
A huge weakness of Web applications today compared to regular desktop applications is that they only work when you have a connection to the Internet. Providing APIs to fix that would help drive the Web forward and also be a big win for Firefox if we could get app developers to use them.
Agenda
- What are the requirements?
- Same URL as the online app?
- Dynamic mode switching?
- ?
- What APIs do we need to provide?
- DOM Storage
- Offline status detection?
- How to make page content available offline? [1]
- What UI is needed?
- Bookmarks?
- Can we get away without any UI at all?
- Who can implement this?
- How do we get web developers to use it?
Notes
- UI model
- go to mail.google.com, and it works.
Pin model
Recursive walk (transitive) Great for browsing offline, but many problems for offline apps.
archive across the wire link rel="offline"
User's decision
If they bookmark it, we should make it available offline
What about users who don't bookmark?
Proposal
- Persistent, robust "offline content" cache
- All bookmarked pages go into offline content cache
- <link rel="offline" href="..."> target pages linked from bookmarked page go into offline content cache
- Revalidate/refetch offline contents periodically
- Serve HTTP loads from offline content cache if main cache misses while in offline mode
- When connection fails during a regular HTTP load, and we have offline content for the page, the error page offers "Put domain xxxyyy.com into offline mode" button.
- Pages loaded from xxxyyy.com offer infobar with button to put domain back into online mode.
With this, plus using JAR files to snapshot content consistently for offline use, plus DOM Storage, plus DOM APIs to detect online/offline status, apps can do cool offline stuff.
- Traverse page content (to some depth) to automatically get offline access to bookmarked static page collections?
- See also [Brad Neuberg's Dojo Offline Toolkit blog item].
Interested Attendees
Please add your name here if you're likely to attend this session, this will help prioritize sessions and minimize conflicts
- Basil
- Dria
- Jay Goldman (Radiant Core)
- Zach Lipton
- ispiked
- shaver
- beltzner
- Steven Garrity (if schedule allows)
- Marcio Galli
- bsmedberg
- Mike Kaply
- Javier Pedemonte
- timeless
- Brendan Eich
- Myk
- robcee
- dmose
- Rob Helmer
- Julien Couvreur