The pain and anguish of using IndexedDB: problems, bugs and oddities
gist.github.com
gist.github.com
Thankfully, I believe things are better now (i.e. they get the basics of storing data right at least), but looking at this gist, they've found alternative ways of irritating developers.
In the past, it was IE that used to bug the heck out of me, but now Safari has well and truly left IE in the dust in terms of its ability to annoy and dumbfound developers.
We need a real robust abstraction for the web that works like a file system. Everything else is just too opinionated and compromises in one way or another.
I solved this a few years ago by generating a uuid in SessionStorage and using that as a composite key for tab isolation. Worked very well. That solution is still in production. The IndexedDB wrapper I used was Dexie. Not great for long-lived data, naturally, but we needed IndexedDB for speed, storage size and an async API.
I later used localForage and I found that to be extremely limiting in comparison (because of LocalStorage being the lowest common denominator). I would not recommend localForage for IndexedDB unless you do really, really, really simple stuff.
But an earlier post said chrome was the slowest.