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

Re: [IndexedDB] Syntax for opening a cursor

From: Nikunj Mehta <nikunj@o-micron.com>
Date: Mon, 28 Jun 2010 20:05:45 +0800
Cc: public-webapps WG <public-webapps@w3.org>
Message-Id: <6A9460D7-AD12-4509-AFEB-25AC5DD7425B@o-micron.com>
To: Jeremy Orlow <jorlow@chromium.org>
Hi Jeremy,

I have been able to push my changes (after more Mercurial server problems) just now. I reopened 9790 because Andrei's commit made IDBCursor and IDBObjectStore constants unavailable from the global object. After all this, you should be able to do the following for your need below:

myObjectStore.openCursor(IDBKeyRange.leftBound("key"), IDBCursor.NEXT_NO_DUPLICATE);

Nikunj
On Jun 25, 2010, at 4:25 AM, Jeremy Orlow 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?
> 
> J
Received on Monday, 28 June 2010 12:14:44 GMT

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