You might assume that Google's offline technology, Google Gears, just isn't capable of seamless online/offline transitions, but a quick look through their developer tutorial proves otherwise.
In a "background sync", the application continuously synchronizes the data between the local data store and the server. This can be implemented by pinging the server every once in a while or better yet, letting the server push or stream data to the client (this is called Comet in the Ajax lingo).This is exactly the type of synchronization feature that Google's apps need to make Chrome OS possible. Without it, Chrome OS will never succeed. Gears has been capable of background synchronization, yet each time Google adds offline capability to one of their apps they force you to manually sync your data before going offline. I've never understood this strategy and now it appears they must revise their offline strategy for the Chrome OS project. I'd imagine Google to think more ahead than this, but let's hope they catch on and we start seeing background sync rolled into their web apps as the Chrome OS launch nears.
The benefits of background synching are:
The downside is that the sync engine might consume resources or slow down the online experience with its background processing (if it's not using the WorkerPool). Using WorkerPool the cost of synching is minimized and no longer affects the user's experience.
- Data is ready at all times, whenever the user chooses to go offline, or is accidentally disconnected.
- The performance is enhanced when using a slow Internet connection.
Update (2009-12-23): It looks like Gmail has the most robust offline support of all the Google web apps now. Reader still forces you to manually sync, you can't create new documents in Docs if you're offline, and Calendar still only lets you look at your events without changing anything. This is promising though, as Gmail is now a suitable replacement for a desktop e-mail client. One step at a time.