W3C home > Mailing lists > Public > whatwg@whatwg.org > September 2009

[whatwg] LocalStorage in workers

From: Jonas Sicking <jonas@sicking.cc>
Date: Wed, 16 Sep 2009 15:32:08 -0700
Message-ID: <63df84f0909161532x5eb246a3lf803c6f9a6287114@mail.gmail.com>
On Wed, Sep 16, 2009 at 3:21 PM, Robert O'Callahan <robert at ocallahan.org> wrote:
> On Thu, Sep 17, 2009 at 9:56 AM, Jeremy Orlow <jorlow at chromium.org> wrote:
>>
>> 1) Create a LocalStorage like API that can only be accessed in an async
>> way via pages (kind of like WebDatabase).
>> 2) Remove any
>> atomicity/consistency?guarantees?from?synchronous?LocalStorage access within
>> pages (like IE8 currently does) and add an async interface for when pages do
>> need atomicity/consistency.
>> 3) Come up with a completely different storage API that all the browser
>> vendors are willing to implement that only allows Async access from within
>> pages. ?WebSimpleDatabase might be a good starting point for this.
>
> 4) Create WorkerStorage so that shared workers have exclusive, synchronous
> access to their own persistent storage via an API compatible with
> LocalStorage.

I think some of the use cases require that code running in Window
objects can access the same storage area though. Consider for example
an email web app that uses a WorkerStorage area for to store email
data locally (for performance and for offline support), and then uses
a worker to synchronize that with the server.

Here the code running in the Window wants to access the storage in
order to render the emails in the page, and the worker wants to access
it to synchronize with the server.

See my email earlier in this thread. If we change the name from
'clientStorage' to 'workerStorage', while still allowing the main
window to asynchronously get a reference to the storage, then I think
that about matches what you're proposing (and what item 1 is
proposing).

/ Jonas
Received on Wednesday, 16 September 2009 15:32:08 UTC

This archive was generated by hypermail 2.3.1 : Monday, 13 April 2015 23:08:52 UTC