What is this site?

HTML5Labs is where Microsoft prototypes early and unstable specifications from web standards bodies such as W3C. Sharing these prototypes helps us have informed discussions with developer communities, and enables us to provide better feedback on draft specifications based on this implementation experience. To find out more about HTML5Labs, read the blog by Jean Paoli, President, Microsoft Open Technologies, Inc.

Documentation

On Feb 04 2011 we have updated the prototype to the latest version of the spec available on the W3C web site.

The new prototype include the following new features:

  • VERSION_CHANGE transaction as described in the spec is implemented except for one feature. The feature NOT implemented is
    • The versionchange event to notify other open database connections, as in the specification. The workaround for this is to not launch two Internet Explorer tabs to open the same database.
  • The createObjectStore() method of the asynchronous database object is now a synchronous operation as described in the specification. Also, this method can only be called from within the onsuccess() handler of the IDBVersionChangeRequest object returned by the setVersion() method. See the samples in CodeSnippets folder for the exact syntax.
  • The deleteObjectStore() method of the asynchronous database object can only be called from within the onsuccess() handler of the IDBVersionChangeRequest object returned by the setVersion() method. See the samples in CodeSnippets folder for examples.
  • The transaction method of the asynchronous database object now accepts parameters as described in the specification. See the sample in the CodeSnippets folder for examples.
  • The asynchronous transaction object now implements auto-commit. The Javascript code needs to have the close() method on the asynchronous database object for auto-commit to work. See the samples in the CodeSnippets folder for examples.

Samples and code snippets are now online, if you have IndexedDB installed on your machine you can test it using:

Bug Tracker Demo

API Samples

To understand the system requirements and limitations of the current prototype implementation, read the release notes here.

With the HTML5 wave of features, Web applications will have most of the building blocks required to build full-fledged experiences for users, from video and vector graphics to offline capabilities. One of the areas that has seen a lot of activity lately is local storage in the browser, captured in the IndexedDB spec. Read more about this on Claudio Caldato's blog and Pablo Castro's blog for the previous release of the IndexedDB prototype.

When we build these prototypes, our approach is to get things out quickly and iterate as the specifications change. In order to do that we use a range of technologies, including but not limited to HTML, C++, JScript, Silverlight, CSS, ActiveX, WCF, .Net, and JQuery. The technologies used going forward may vary to facilitate rapid development.