After a bit more sweat and tears, I’ve now got a “full” (if ugly) example of an IndexedDB application. It allows you to create and delete simple notes. You can view this demo here:
Right now this demo is Firefox only. It doesn’t work in Chrome because of the bug I mentioned in my earlier blog post. Here’s the code - and again - I want to mention (and credit) the excellent MDN tutorial for making this easier to build.
Nothing too scary, right? Using method chaining makes the code a bit more palatable and simpler to work with.
After getting this working, I began to look at how you can retrieve data. I guess I shouldn’t be surprised (and @thefalken pointed it out to me), but you are limited to primary key lookups only.
So let me make sure that is clear. This is not a replacement for WebSQL. You cannot search. I guess - technically - you could search if you load everything up and iterate over it, but that’s not really efficient. You can do range based filters, so for example, given a set of names I could go from Bob to Mary, but if I wanted to quickly find all the objects with property X set to Y and property Z set to A, then I’m out of luck. I was really thinking this was a Mongo-ish type solution, but I was wrong.
I don’t know about you - but this is kind of disappointing. Maybe my opinion will change, but right now I’m sad that WebSQL is being dumped for this.