<div class="gmail_quote">On Tue, Sep 8, 2009 at 4:54 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 Tue, Sep 8, 2009 at 12:00 AM, Aaron Boodman<<a href="mailto:aa@google.com">aa@google.com</a>> wrote:<br>
> On Fri, Sep 4, 2009 at 12:02 AM, Chris Jones<<a href="mailto:cjones@mozilla.com">cjones@mozilla.com</a>> wrote:<br>
>> I propose adding the functions<br>
>><br>
>>  window.localStorage.beginTransaction()<br>
>>  window.localStorage.commitTransaction()<br>
>> or<br>
>>  window.beginTransaction()<br>
>>  window.commitTransaction()<br>
><br>
> I think this is a good idea! I would modify it to follow the pattern<br>
> set by the current SQLDatabase proposal, to have a callback, like<br>
> this:<br>
><br>
> window.localStorage.transaction(function() {<br>
>  // use local storage here<br>
> });<br>
<br>
</div>We have discussed similar APIs in the past. Something like a:<br>
<br>
window.getLocalStorage(function (storage) {<br>
  ...use storage...<br>
});<br>
<br>
This is nice because it can be expanded to something like:<br>
window.getSharedItems(window.SHARED_ITEM_LOCALSTORAGE |<br>
window.SHARED_ITEM_COOKIES, function (...) { ... });<br>
<br>
to let you access both cookies and localStorage safely at the same time.<br>
<br>
However, this requires breaking compatibility with existing syntax,<br>
something that seems impossible at this point given that Microsoft has<br>
shipped localStorage. I know Hixie has asked them in the past about<br>
how they plan to deal with the mutex problem, but I'm not sure if an<br>
answer has been received as of yet.<br></blockquote><div><br></div><div>First of all, I'm not sure I agree that we're at the point where breaking compatibility is impossible.  It really doesn't seem like it's terribly widely used, and what's implemented is based on an early draft of the spec.  Yes, I agree that it's really unfortunate we didn't iron these problems out better before everyone implemented it, but if LocalStorage changed today, it definitely wouldn't break the web.  (Of course, it's possible that we would be breaking the web by the time the next gen of the major browsers ship.....it's hard to know for sure.)</div>

<div><br></div><div>But, if we're going to say that the way things are now is sacred, then how do we reconcile the fact that an app that works fine on Safari (and others) may break in IE due to races?  If we're so worried about compatibility, maybe we need to cater to the lowest common denominator (IE8....so no run to completion guarantees for LocalStorage) and add in a mechanism that does give you guarantees (like a callback).</div>

<div><br></div><div><br></div><div>As a side note, I'd be very interested to hear what Microsoft's response was.</div><div><br></div><div>J</div></div>