Storage limit for indexeddb on IE10

Thomas picture Thomas · Feb 5, 2013 · Viewed 7.2k times · Source

We are building a web-app that store lots of files as blobs with indexedDB. If the user uses our app at its maximum, we could store as much as 15GB of file in indexeddb.

We ran into a problem with IE10, that I strongly suspect is a quota issue.

After having successfully saved some files, a new call to store.put(data, key); will never ends.

Basically, the function will be called, but no success event nor error event will be called.

If I look into the IndexedDB folder of IE 10 I'll see a handfull of what looks like temporary files (of 512 kB each) getting created and removed indefinitely.

When looking at the "Cache and Database" paramaters window, I see that my site's database has reached 250 MB.

Looking further, I found this blog entry http://msdnrss.thecoderblogs.com/2012/12/using-html5javascript-in-windows-store-apps-data-access-and-storage-mechanism-ii/ which incidently says that the storage limit for Windows Store apps is 250 MB.

I am not using any Windows Store mechanism, but I figured I could be victim of the same arbitrary limit.

So, my question is :

  • Is there any way to bypass this limit ? User is asked for permission to exceed a 10 MB limit, but I saw no question popping to the user when the 250 MB was reached.

  • Is there any other way to store more than 250 MB of data with IE10.

Thanks, I'll take any clues.

Answer

Kristof Degrave picture Kristof Degrave · Feb 6, 2013

I afraid you can't. Providing the storage limit and asking the user to allow more space is the responsibility of the browser vendor. So I don't think the first option is applicable.

I know the user can allow a website to exceed a give limit (internet options > General > Browsing history > settings > caches and databases), but I don't know if that will overrule the 250MB. It can be that this is a hardcoded limit you can't exceed.

This limit is bound to a domain meaning you can't solve it by creating multiple databases. The only solution would be to store on multiple domains, but in that case you can't cross access them. Also as I see the 250MB limit will be for indexeddb API and File API combined