On Wed, Sep 30, 2015 at 10:50 AM, Tab Atkins Jr. <jackalm...@gmail.com> wrote:
> On Tue, Sep 29, 2015 at 10:51 AM, Domenic Denicola <d...@domenic.me> wrote:
>> I guess part of the question is, does this add enough value, or will authors 
>> still prefer wrapper libraries, which can afford to throw away backward 
>> compatibility in order to avoid these ergonomic problems? From that 
>> perspective, the addition of waitUntil or a similar primitive to allow 
>> better control over transaction lifecycle is crucial, since it will enable 
>> better wrapper libraries. But the .promise and .complete properties end up 
>> feeling like halfway measures, compared to the usability gains a wrapper can 
>> achieve. Maybe they are still worthwhile though, despite their flaws. You 
>> probably have a better sense of what authors have been asking for here than 
>> I do.
>
> Remember that the *entire point* of IDB was to provide a "low-level"
> set of functionality, and then to add a sugar layer on top once
> authors had explored the space a bit and shown what would be most
> useful.
>
> I'd prefer we kept with that approach, and defined a consistent,
> easy-to-use sugar layer that's just built with IDB primitives
> underneath, rather than trying to upgrade the IDB primitives into more
> usable forms that end up being inconsistent or difficult to use.
>
> ~TJ
>

At a bare minimum we need to actually specify how transaction
lifetimes interact with tasks, microtasks, etc.  Especially since the
behavior differs between Gecko and Blink (or did, the last time I
checked).

waitUntil() alone is a pretty large change to IDB semantics. Somebody
mentioned earlier that you can get this behavior today which is true,
but it requires you to continually issue "keep-alive" read requests to
the transaction, so it's fairly obvious you aren't using it as
intended.

- Kyle

Reply via email to