- From: Jonas Sicking <jonas@sicking.cc>
- Date: Mon, 10 Oct 2011 09:46:22 -0700
- To: Israel Hilerio <israelh@microsoft.com>
- Cc: Webapps WG <public-webapps@w3.org>
On Fri, Oct 7, 2011 at 11:51 AM, Israel Hilerio <israelh@microsoft.com> wrote: > On Thursday, October 06, 2011 5:44 PM, Jonas Sicking wrote: >> Hi All, >> >> In both the Firefox and the Chrome implementation you can pass an empty >> array to IDBDatabase.transaction in order to create a transaction which has >> a scope that covers all objectStores in the database. I.e. you can do >> something like: >> >> trans = db.transaction([]); >> trans.objectStore(<any objectstore here>); >> >> (Note that this is *not* a dynamic scoped transaction, it's still a static scope >> that covers the whole database). >> >> In other words, these implementations treat the following two lines as >> equivalent: >> >> trans = db.transaction([]); >> trans = db.transaction(db.objectStoreNames); >> >> This, however, is not specified behavior. According to the spec as it is now >> the transaction should be created with an empty scope. >> >> I suspect both Mozilla and Google implemented it this way because we had >> discussions about this syntax on the list. However apparently this syntax >> never made it into the spec. I don't recall why. >> >> I'm personally not a big fan of this syntax. My concern is that it makes it >> easier to create a widely scoped transaction which has less ability to run in >> parallel with other transactions, than to create a transaction with as narrow >> scope as possible. And passing db.objectStoreNames is always possible. >> >> What do people think we should do? Should we add this behavior to the >> spec? Or are implementations willing to remove it? >> >> / Jonas >> > > Our implementation interprets the empty array as an empty scope. We allow the transaction to be created but we throw a NOT_FOUND_ERR when trying to access any object stores. > I vote for not having this behavior :-). Hi Israel, I just realized that I might have misinterpreted your response. Are you saying that you think that passing an empty-array should produce a transaction with an empty scope (like in IEs implementation and as described by the spec currently), or a transaction with every objectStore in scope (like in Firefox and chrome)? / Jonas
Received on Monday, 10 October 2011 16:47:21 UTC