IndexedDB Prototype Available for Internet Explorer


As we launch our new HTML5 Labs today, this is one of two guest blogs about the first two HTML5 prototypes. It is written by Pablo Castro, a Principal Architect in Microsoft’s Business Platform Division.

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, where there is a working draft as well as a more current editor’s draft.

The goal of IndexedDB is to introduce a relatively low-level API that allows applications to store data locally and retrieve it efficiently, even if there is a large amount of it.

The API is low-level to keep it really simple and to enable higher-level libraries to be built in JavaScript and follow whatever patterns Web developers think are useful as things change over time.

Folks from various browser vendors have been working together on this for a while now, and Microsoft has been working closely with the teams at Mozilla, Google and other W3C members that are involved in this to design the API together. Yeah, we even had meetings where all of us where in the same room, and no, we didn’t spontaneously combust!

The IE folks approach is to focus IE9 on providing developer site-ready HTML5 that can be used today by web developers without having to worry about what is stable and not stable, or being concerned about the site breaking as the specifications and implementations change. Here at the HTML5 Labs we are letting developers experiment with unstable standards before they are ready to be used in production site.

In order to enable that, we have just released an experimental implementation of IndexedDB for IE. Since the spec is still changing regularly, we picked a point in time for the spec (early November) and implemented that.

The goal of this is to enable early access to the API and get feedback from Web developers on it. Since these are early days, remember that there is still time to change and adjust things as needed. And definitely don’t deploy any production applications on it :)

You can find out more about this experimental release and download the binaries from this archive, which contains the actual API implementation plus samples to get you started.

For those of you who are curious about the details: we wanted to give folks early access to the API without disrupting their setup, so we built the prototype as a plain COM server that you can register in your box.

That means we don’t need to mess with IE configuration or replace files. The only visible effect of this is that you have to start with “new ActiveXObject(…)” instead of the regular windows.indexedDB. That would of course go away if we implement this feature.

If you have feedback, questions or want to reach out to us for any other reason, please contact us here. We’re looking forward to hearing from you.

As a side note, and since this is a component of IE, if you want to learn more about how IE is making progress in the space of HTML5 and how we think about new features in this context, check out the IE blog here.

Pablo

Comments (11)

  1. rogerj says:

    Pablo,

    The html5labs.interoperabilitybridges.com/…/html5protos_Download URL is throwing a 404 for in IE8.

    What's the plan for higher-level APIs, such as sync with Windows Azure tables?

    Cheers,

    –rj

  2. rogerj says:

    Remove the spurious :91 port designator from the URL and the download page appears.

    –rj

  3. pgalli says:

    Folks, thanks for flagging this. I went in and corrected the link so it now takes you to the download page. Peter

  4. pabloc says:

    @rogerj: thanks for reporting the glitches.

    We're experimenting with higher-level APIs for JavaScript, as soon as we something that makes sense we'll share.

    -pablo

  5. pabloc says:

    @rogerj: thanks for reporting the glitches.

    We're experimenting with higher-level APIs for JavaScript, as soon as we something that makes sense we'll share.

    -pablo

  6. Parashuram says:

    Here is a showcase of the IndexedDB API for IE – blog.nparashuram.com/…/indexeddb-for-internet-explorer.html

  7. Michael says:

    Hi, this is a nice initiative. Sadly I can't get this to work in IE9 apparently, I always get the following error when it tries to create the activex object:

    "SCRIPT429: Automation server can't create object"

    I did the regsvr32 of the dll and installed the vc++ runtime (even though I already had them), any idea? Maybe security rights (trusted sites and such)?

  8. @Michael: you can workaround the issue by running IE as administrator, I'll check the code to find out what changed in IE RTM that makes the code to fail if it is not executed with admin permissions.

  9. Sujith Babu says:

    Good stuf

    When will this be part of an IE release ? Anything planned yet?

  10. @Sujith Babu: It is too early to tell. The whole point of the Labs is to have a place to experiment with unstable specifications so that the specifications can improve. It’s impossible to judge beforehand when the specification will stabilize and be ready for inclusion in IE. Instead our approach is to run an increasing number of experiments in the labs without feeling that we are time constrained to when they have to be ready.

    Claudio

  11. ishan Mozzaz says:

    my index DB does not open says it is undefined !!! :(