Offline App Guidelines

Browser application caching allows a manifest to be created listing pages that should be cached and made available offline.
Normally, when you visit a URL, a server request is made to return the page. Setting up an application cache manifest 
tells the browser how it can use pages already downloaded rather than just immediately displaying an error when 
there is no longer a network connection.

Local Storage is a standard that retains local web app data(even when the browser is shut down) using a key/value system that works similarly to browser cookies. However, it is differentfrom browser cookies in two important ways. First, cookies are resent to the server with every HTTP request, and it would waste a lot of bandwidth to resend all offline data when the server doesn’t need it. Secondly, cookies tend to max out at around 4k of data, while local storage usually gives an application as much as 5 MB of data to work with per domain. 5 MB may not sound like much, but when used carefully, it can go a very long way in terms of offline local storage.

Local Database removes the 5MB limit of local storage and allowsdata to be indexed so that multiple properties can be queried quickly. This is only an HTML5 proposed standard at present; only Internet Explorer and Firefox have implemented it so far. Safari and Chrome use an older, deprecated system called Web SQL. This means if you need this level of functionality, there is a significant amount of extra work and complexity to supportboth standards across all major browsers. Hopefully, that won’t always be the case and major browsers will conform to the finalized HTML5 specifications.

To decide if Local Storage is good enough, consider these constraints for the app: 1. The total size of data you need to keep offline 2. The number of data items (records) you need to keep offline 3. The number of data properties (fields) you need to search within