Какие преимущества у Session Storage по сравнению с Local Storage?
Помимо того, что Session Storage не является постоянным и ограничен лишь текущим окном, существуют ли какие-либо преимущества (например, производительность, доступ к данным и т.д.) у Session Storage по сравнению с Local Storage?
5 ответ(ов)
Единственное различие между sessionStorage и localStorage заключается в их времени жизни.
sessionStorageбудет доступен только в рамках того окна, в котором он был создан, и только пока это окно открыто.localStorageсохраняется до тех пор, пока вы его не удалите, или пока пользователь сам не удалит его.
Например, если вам нужно сохранить имя пользователя и пароль для входа, лучше использовать sessionStorage по соображениям безопасности (т.е. чтобы другой человек не смог получить доступ к его учетной записи позже).
Однако если вы хотите сохранить настройки пользователя на его компьютере, вам, вероятно, следует использовать localStorage.
В заключение:
localStorage— используйте для долговременного хранения.sessionStorage— используйте, когда вам нужно сохранить что-то временное или изменяющееся.
Несколько дополнительных моментов, которые могут помочь понять различия между локальным хранилищем (local storage) и сеансовым хранилищем (session storage):
Оба типа хранилищ ограничены по доменному origen, поэтому:
https://mydomain.example/ http://mydomain.example/ https://mydomain.example:8080/Все вышеперечисленные URL-адреса не будут делиться одним и тем же хранилищем. (Обратите внимание, что путь веб-страницы не влияет на веб-хранилище.)
Сеансовое хранилище уникально даже для документов с одинаковой политикой происхождения, открытых в разных вкладках, поэтому одна и та же веб-страница, открытая в двух разных вкладках, не может использовать одно и то же сеансовое хранилище.
Как локальное, так и сеансовое хранилище также ограничено по вендорам браузеров. Поэтому данные, сохраненные в Internet Explorer, не могут быть прочитаны в Chrome или Firefox.
Основное отличие между localStorage и sessionStorage заключается в том, что sessionStorage уникален для каждой вкладки. Если вы закроете вкладку, данные в sessionStorage будут удалены, тогда как данные в localStorage останутся. Также стоит отметить, что между вкладками сделать обмен данными с помощью sessionStorage невозможно 😃
Еще одно тонкое различие: например, в Safari (8.0.3) лимит localStorage составляет 2551 кб, а sessionStorage имеет неограниченное хранилище.
В Chrome (v43) как localStorage, так и sessionStorage ограничены 5101 кб (разницы между обычным и инкогнито режимами нет).
В Firefox также оба хранилища ограничены 5120 кб (разницы между обычным и приватным режимами нет).
По скорости разницы нет совершенно 😃
Есть также проблема с Mobile Safari и Mobile Chrome: в режиме приватного просмотра Safari и Chrome максимальный объем хранилища составляет 0 КБ.
sessionStorage работает аналогично localStorage, за исключением того, что данные, хранящиеся в sessionStorage, доступны только в течение одной сессии. Это означает, что данные будут удалены, когда пользователь закроет окно браузера, в котором они были созданы.
С точки зрения производительности, мои (грубые) измерения не показали разницы при 1000 операциях записи и чтения.
С точки зрения безопасности, интуитивно кажется, что localStore может быть отключен раньше, чем sessionStore, но у меня нет конкретных доказательств — возможно, у кого-то есть информация по этому поводу?
С функциональной точки зрения согласен с digitalFresh выше.
Каков максимальный размер значений localStorage?
Как сохранить массив в localStorage?
Потеряно HTML-кодирование при чтении атрибута из поля ввода
Как создать WYSIWYG-редактор на HTML/JS? [закрыто]
Как выполнить код после сброса HTML-формы с помощью jQuery?