W3C home > Mailing lists > Public > public-webapps@w3.org > January to March 2010

Re: localStorage Event

From: Olli Pettay <Olli.Pettay@helsinki.fi>
Date: Fri, 29 Jan 2010 01:38:55 +0200
Message-ID: <4B62200F.1010802@helsinki.fi>
To: Jared Morse <jarcoal@gmail.com>
CC: public-webapps@w3.org
On 1/29/10 12:22 AM, Jared Morse wrote:
> Perhaps I am mistaken, but I believe you would still have to go around
> and add that trigger to all the places the value is changed from.

Well you could do something like
Storage.prototype.setItemAndNotify =
   function (key, data) {
     this.setItem(key, data);
     var e = document.createEvent("StorageEvent");
     e.initStorageEvent(...);
     window.dispatchEvent(e);
   }

and use that when you set some item.
Or just replace setItem method using prototype.

That way you get the behavior you want, but still allow the
other behavior.


-Olli


>
> -J
>
> On Thu, Jan 28, 2010 at 2:06 PM, Olli Pettay <Olli.Pettay@helsinki.fi
> <mailto:Olli.Pettay@helsinki.fi>> wrote:
>
>     On 1/28/10 11:57 PM, Jared Morse wrote:
>
>         Even though it occurs on the same document, doesn't mean loosely
>         coupled
>         code can't benefit from it.
>
>         Imagine if each time you added a feature to a web app that
>         depended on
>         knowing a current value from the storage, you'd have to go
>         around to all
>         the places that value is changed and add some code to alert your new
>         code.  If storage events triggered on the same document, all you
>         would
>         have to do is set a listener.
>
>
>     If you really need this behavior, you can always dispatch your own event
>     to the window when you change the data.
>
>
>     -Olli
>
>
>
>         -J
>
>         On Thu, Jan 28, 2010 at 1:41 PM, Olli Pettay
>         <Olli.Pettay@helsinki.fi <mailto:Olli.Pettay@helsinki.fi>
>         <mailto:Olli.Pettay@helsinki.fi
>         <mailto:Olli.Pettay@helsinki.fi>>> wrote:
>
>             On 1/28/10 9:34 PM, Jared Morse wrote:
>
>                 Hi, I have a concern about the web storage event spec
>                 (http://dev.w3.org/html5/webstorage/).
>
>                 The spec states:
>         "When the setItem(), removeItem(), and clear()  methods are
>                 called on a
>                 Storage object x that is associated with a local storage
>         area,
>                 if the
>                 methods did something, then in every HTMLDocument object
>         whose
>                 Window
>                 object's localStorage attribute's Storage object is
>         associated
>                 with the
>                 same storage area, other than x, a storage event must be
>         fired..."
>
>                 My concern lies with the "other than x" part.  Unless
>         I'm missing
>                 something, these events would be even more useful if
>         they also
>                 fired in
>                 the HTMLDocument that initially made the storage call.
>
>
>             The page which is changing storage object knows already that the
>             storage object is being changed. Why would it need explicit
>             notification (event) about that?
>
>
>             -Olli
>
>
>
>
>
>                 Thanks for your time.
>
>                 -Jared
>
>
>
>
>
Received on Thursday, 28 January 2010 23:39:32 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:36 GMT