Snappy Web Applications
Responsiveness is a huge differentiator in user experience for any web application and mobile web application specifically.
Most of the web applications are associated with impression of slow network, long waiting times after each CRUD operation or a spinning wheel waiting to get query response from the server.
LinkedIn developers attempted to optimize that experience reusing local storage to cache data model on the client. The approach allows to eliminate unnecessary long trip to the server allow almost instant feedback to the user. The following article describes approach in more details: https://engineering.linkedin.com/mobile/linkedin-ipad-using-local-storage-snappy-mobile-apps
The following diagram describes suggested algorithm:
The article discusses in details how to cache data in the local storage on the backbone.js sync extension level. Solution also tries to address a problem of concurrent modifications using timestamps with the latest one to win.
Here is an implementation that would allow to sync client and server databases:
LinkedIn are not the first to research this area. Gmail iPhone web application tried to narrow the gap between native and web application already in 2009 using web database and webkit appcache:
You can find more data here: