My goodness lol so much info. Thanks for sharing. I ll have to digest some of this slowly. I think initially all I need to keep track of is the session data I have created in PHP when someone refreshes. Other than that I m keeping all the data on the backend. I just need to make sure my boolean "userIsAuthenticated" remains set to true until a user logs off or quits the browser
On Friday, April 25, 2014 2:59:17 PM UTC-4, tonypee wrote: > > using sessionStorage is totally fine. especially if you have to support > things like ie8. We use it extensively. localStorage is also useful for > message passing and intertab coms. > > You should be aware that: > - there is a 5MB limit > - all values are a key/value pair storing values as a STRING > - you can just JSON to store more complex values. > - in firefox the storage is shared across ALL sessions of that top level > domain- eg. myapp.someting.com & cms.something.com both share the 5mb > space. except they do not have access to eachothers session, as so cannot > clean up. This can be annoying. Especially since it is NOT removed on > browser close, as state is recreated. I cant find the bug link, but people > have been complaining. We ran into the issue, and just had to reduce the > size of what we store. > > other trivial notes that you might find interesting: > - internet explorer 8-10 (not sure about 11) break the spec for the > 'storage' event. When you change a value, you can listen on other > tabs/windows for a storage event (for localStorage) and use this to keep > tabs in sync. The event should be sent out to OTHER tabs. IE sends the > event to itself (the tab of origin) also. You need to wrap the value and id > your tabs to fix this afaik. > - localStorage is shared memory. chrome runs different processes for each > tab. reads and writes (getItem, setItem) are atomic, meaning that you will > never have the issue that two tabs write at the same time, but you DO have > the issue that since your read, another tab might have mutated the value - > even if you have the read and write (if you are appending to an array for > instance) in consecutive lines of javascript. There is no way to reliably > *lock the localstorage, via a mutex or semaphore - to allow for a > 'transaction' to be performed, since creating a spinlock requires > processing on the background tabs, and chrome buffers and limits processing > for background tabs. SO, you can delegate a *master, via consensus. If you > need a reliable way to write and sync data between tabs. Ill be hopefully > releasing code that ive made for this at some point - its pretty simple, > just use the storage event with heartbeats, etc, to delegate master. > > But in general, for simple usage, and just hydrating state between page > refreshes.. yes. its perfect for that ;P > > cheers > > > On 25 April 2014 11:30, Billy Figueroa <[email protected] <javascript:>>wrote: > >> Hey Guys, >> >> I just need some input about how most people are handling persisting data >> in angular since a page refresh will wipe out the data. I have seen a >> previous post where people recommended things like breeze.js and >> persistence.js but what is wrong with just using the html5 local storage >> api? >> >> it looks like it is supported in all browsers so why not use it? I am >> working with a PHP/ MySQL backed and I don't want to use something like >> breeze because it does more than I need. I m looking to just use >> sessionStorage to keep the data active until the user closes the browser. >> >> Let me know what ya think >> >> -- >> You received this message because you are subscribed to the Google Groups >> "AngularJS" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> Visit this group at http://groups.google.com/group/angular. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Tony Polinelli > > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
