Randy,
I just tested this out with our web app (which uses a mix of files from Appcache and server-based requests), and it did not go well.
Images and styles didn't always load, some pages showed stale data, and the ping requests that our app uses to test server connectivity returned false positives. Plus, it seems like this offline caching is completely ignoring the headers that our app uses to prevent any caching.
This kind of aggressive caching behavior reminds me of
Apple's recent oops. Old data is not always better than no data, especially for web apps, because a user will think they are online and seeing current data. Many of our customers are mobile, and often lose connectivity. It would be a real nightmare to debug issues if users might be looking at stale content.
IMHO, caching (offline or otherwise) should be dictated by the website/webapp, and this is already possible with existing caching headers and the appcache. Despite
some negative press, appcache is terrific, especially for web apps that need to run offline, and we've been using it to power our web app in offline-mode (across a huge variety of devices), while totally avoiding the costs and restrictions of distribution through walled-garden app-stores.
I'd recommend against this type of offline behavior, but if you still want it, perhaps you could:
- keep it disabled by default (user has to opt-in) -- like it is now
- display a big warning to tell users that they are offline (and looking at old data)
- respect the caching headers on pages
- disable it for pages that already use the appcache
I'll get off my soapbox now. Thanks for enduring my rant. ;)
- Matt