W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2010

Re: [IndexedDB] Syntax for opening a cursor

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Thu, 24 Jun 2010 13:35:07 -0700
Message-ID: <AANLkTinDezBM4AE7D_HReXhI69sK4_p8Y_h8hVuxuxrF@mail.gmail.com>
To: Jeremy Orlow <jorlow@chromium.org>
Cc: public-webapps WG <public-webapps@w3.org>
On Thu, Jun 24, 2010 at 1:25 PM, Jeremy Orlow <jorlow@chromium.org> wrote:
> If I'm reading the current spec right (besides the "[NoInterfaceObject]"
> attributes that I thought Nikunj was going to remove), if I want to open a
> cursor, this is what I need to do:
>
> myObjectStore.openCursor(new IDBKeyRange().leftBound("key"), new
> IDBCursor().NEXT_NO_DUPLICATE);
>
> Note that I'm creating 2 objects which get thrown away after using the
> constructor and constant.  This seems pretty wasteful.
> Jonas' proposal (which I guess Nikunj is currently in the middle of
> implementing?) makes things a bit better:
>
> myObjectStore.openCursor(window.indexedDB.makeLeftBoundedKeyRange("key"),
> new IDBCursor().NEXT_NO_DUPLICATE);
>
> or, when you have a single key that you're looking for, you can use the
> short hand
>
> myObjectStore.openCursor("key", new IDBCursor().PREV);
>
> But even in these examples, we're creating a needless object.  I believe we
> could also use the prototype to grab the constant, but the syntax is still
> pretty verbose and horrid.
> Can't we do better?

If we're specifying something that will get wrapped in a library to
make it less horrible *on day 1* (or earlier), we're doing it wrong.

All of the variants above are very, very wrong.

~TJ
Received on Thursday, 24 June 2010 20:36:00 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:39 GMT