Chapter 5. IndexedDB

The localStorage interface (see Chapter 4) provides a very nice interface for storing small amounts of data, but the browser limits this storage space to 5 MB in many cases. If the storage needs of an application go beyond that, or if the application needs to have query access to structured data, local storage is not the best choice. In this case, having a more robust storage mechanism can be useful for the application developer. IndexedDB provides this mechanism on many browsers. For example, a programmer may store product catalog data into an IndexedDB store so that when the user searches for an item, the server does not need to make a trip to the server to find the data for a particular item.

IndexedDB is a NoSQL database that will feel familiar to people who have used such products as MongoDB or CouchDB. A program can store JavaScript objects directly into an IndexedDB data store.

IndexedDB has been in Firefox starting with version 4. It also was introduced into Google Chrome starting with version 11. Microsoft has a version online at its HTML5 Labs website as an ActiveX control, which can be added into IE, and presumably it will be in the main IE release at some point. It will probably be available in other browsers in the next year or two. Formally, IndexedDB is now a draft proposal from the W3C.

Note

Because IndexedDB is supported by only two browsers at this point, use should probably be restricted to internal applications where you can limit use to browsers ...

Get Programming HTML5 Applications now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.