[IndexedDB] request feedback on IDBKeyRange.inList([]) enhancement

Hello all,

Recently I've been working on a mobile application that makes heavy use of IndexedDB.  In particular, there are times when this app must query a potentially large, non-consecutive list of keys.  Currently (to my knowledge) the IndexedDB API requires that this be done via separate get() calls.  Due to some performance issues I investigated enhancing the IndexedDB API to allow the list of keys to be queried in a single request.  The resulting changes seem to show significant performance improvement on the mozilla mobile platform.

I would like to get your feedback and input on this API change.

The enhancement essentially adds an inList() function to IDBKeyRange.  Similar to the other factory methods on IDBKeyRange, this returns an object which can be used to query a matching set of keys.  The inList() function takes an array of keys to match against.  In practice it would look like the following:

  var keyRange = IDBKeyRange.inList(['key-1', 'key-2', 'key-3']);
  var request = index.openCursor(keyRange);

Duplicate keys in the list are ignored.  The order of the results would be controlled by the normal cursor ordering mechanisms.

I've written a rough proof-of-concept for the mozilla platform here:

  https://bugzilla.mozilla.org/show_bug.cgi?id=872741

I realize there has been some discussion of this topic in the past.  In particular, Ben Turner referred me to:

  https://www.w3.org/Bugs/Public/show_bug.cgi?id=16595
  https://docs.google.com/a/mozilla.com/document/d/1vvC5tFZCZ9T8Cwd2DteUvw5WlU4YJa2NajdkHn6fu-I/edit

From these links it sounds like there has been a lack of interest, but no strong objection.  Since there appears to be some legitimate benefit from the API enhancement I thought I would send it out to the list for feedback.  I have to admit I'm new to the standardization process, though.  I apologize for the noise if this is essentially a non-starter.

Any feedback is greatly appreciated.  Thank you!

Ben Kelly

Received on Sunday, 19 May 2013 15:40:14 UTC