<div class="gmail_quote">On Wed, Sep 16, 2009 at 3:32 PM, Jonas Sicking <span dir="ltr"><jonas@sicking.cc></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Wed, Sep 16, 2009 at 3:21 PM, Robert O'Callahan <<a href="mailto:robert@ocallahan.org">robert@ocallahan.org</a>> wrote:<br>
</div><div class="im">> On Thu, Sep 17, 2009 at 9:56 AM, Jeremy Orlow <<a href="mailto:jorlow@chromium.org">jorlow@chromium.org</a>> wrote:<br>
>><br>
>> 1) Create a LocalStorage like API that can only be accessed in an async<br>
>> way via pages (kind of like WebDatabase).<br>
>> 2) Remove any<br>
>> atomicity/consistency guarantees from synchronous LocalStorage access within<br>
>> pages (like IE8 currently does) and add an async interface for when pages do<br>
>> need atomicity/consistency.<br>
>> 3) Come up with a completely different storage API that all the browser<br>
>> vendors are willing to implement that only allows Async access from within<br>
>> pages.  WebSimpleDatabase might be a good starting point for this.<br>
><br>
> 4) Create WorkerStorage so that shared workers have exclusive, synchronous<br>
> access to their own persistent storage via an API compatible with<br>
> LocalStorage.<br>
<br>
</div>I think some of the use cases require that code running in Window<br>
objects can access the same storage area though. Consider for example<br>
an email web app that uses a WorkerStorage area for to store email<br>
data locally (for performance and for offline support), and then uses<br>
a worker to synchronize that with the server.<br>
<br>
Here the code running in the Window wants to access the storage in<br>
order to render the emails in the page, and the worker wants to access<br>
it to synchronize with the server.<br>
<br>
See my email earlier in this thread. If we change the name from<br>
'clientStorage' to 'workerStorage', while still allowing the main<br>
window to asynchronously get a reference to the storage, then I think<br>
that about matches what you're proposing (and what item 1 is<br>
proposing).<br></blockquote><div><br></div><div>Code wise, what Robert suggested is MUCH simpler.  Almost for free in WebKit.  Creating an asynchronous access method and exposing this in the page is much more complex.  It also defeats the main purpose of LocalStorage (which is to be a simple, light weight way to store data).</div>

<div><br></div><div>I certainly agree that having some shared memory format between workers and pages would be good, and there's some use cases which would certainly benefit, but most of the developers I've talked to so far were mostly concerned about having _some_ form of storage and the shared memory aspects were more nice to have.</div>

<div><br></div><div>J</div></div>