Apart from being non persistent and scoped only to the current window, are there any benefits (performance, data access, etc) to Session Storage over Local Storage?
11 Answers
localStorage and sessionStorage both extend Storage. There is no difference between them except for the intended "non-persistence" of sessionStorage
.
That is, the data stored in localStorage
persists until explicitly deleted. Changes made are saved and available for all current and future visits to the site.
For sessionStorage
, changes are only available per tab. Changes made are saved and available for the current page in that tab until it is closed. Once it is closed, the stored data is deleted.
The only difference is that localStorage has a different expiration time, sessionStorage
will only be accessible while and by the window that created it is open. localStorage
lasts until you delete it or the user deletes it.
Lets say that you wanted to save a login username and password you would want to use sessionStorage
over localStorage
for security reasons (ie. another person accessing their account at a later time).
But if you wanted to save a user's settings on their machine you would probably want localStorage
. All in all:
localStorage
- use for long term use.sessionStorage
- use when you need to store somthing that changes or somthing temporary
Few other points which might be helpful to understand differences between local and session storage
Both local storage and session storage are scoped to document origin, so
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/All of the above URL's will not share the same storage. (Notice path of the web page does not affect the web storage)
Session storage is different even for the document with same origin policy open in different tabs, so same web page open in two different tabs cannot share the same session storage.
Both local and session storage are also scoped by browser vendors. So storage data saved by IE cannot be read by Chrome or FF.
Hope this helps.
The main difference between localStorage
and sessionStorage
is that sessionStorage
is unique per tab. If you close the tab the sessionStorage
gets deleted, localStorage
does not. Also you cannot communicate between tabs :)
Another subtle difference is that for example on Safari (8.0.3) localStorage
has a limit of 2551 k characters but sessionStorage
has unlimited storage
On Chrome (v43) both localStorage
and sessionStorage
are limited to 5101 k characters (no difference between normal / incognito mode)
On Firefox both localStorage
and sessionStorage
are limited to 5120 k characters (no difference between normal / private mode )
No difference in speed whatsoever :)
There's also a problem with Mobile Safari and Mobile Chrome, Private Mode Safari & Chrome have a maximum space of 0KB
The advantage of the session storage over local storage, in my opinion, is that it has unlimited capacity in Firefox, and won't persist longer than the session. (Of course it depends on what your goal is.)
sessionStorage
maintains a separate storage area for each given origin that's available for the duration of the page session (as long as the browser is open, including page reloads and restores)
localStorage
does the same thing, but persists even when the browser is closed and reopened.
I took this from Web Storage API
Local storage: It keeps store the user information data without expiration date this data will not be deleted when user closed the browser windows it will be available for day, week, month and year.
//Set the value in a local storage object
localStorage.setItem('name', myName);
//Get the value from storage object
localStorage.getItem('name');
//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege
Session Storage: It is same like local storage date except it will delete all windows when browser windows closed by a web user.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
Read More Click
Late answer but felt to add some points here.
Session storage will be available for specific tab where as we can use Local storage through out the browser. Both are default to same origin and we can also store values manually with key, value pairs (value must be string).
Once tab (session) of the browser is closed then Session storage will be cleared on that tab, where as in case of Local storage we need to clear it explicitly. Maximum storage limit respectively 5MB
and 10MB
.
We can save and retrieve the data like below,
To Save:
sessionStorage.setItem('id', noOfClicks); // localStorage.setItem('id', noOfClicks);
sessionStorage.setItem('userDetails', JSON.stringify(userDetails)); // if it's object
To Get:
sessionStorage.getItem('id'); // localStorage.getItem('id');
User user = JSON.parse(sessionStorage.getItem("userDetails")) as User; // if it's object
To Modify:
sessionStorage.removeItem('id'); // localStorage.removeItem('id');
sessionStorage.clear(); // localStorage.clear();
P.S: getItem()
also return back the data as string and we need convert it into JSON format to access if it's object.
You can read more about Browser Storages here..