Какие преимущества у 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 выше.
Как выбрать элемент по имени с помощью jQuery?
jQuery: Получение Выбранного Значения Из Выпадающего Списка
Прокрутка до низа div?
Как получить фактическую ширину и высоту HTML-элемента?
Потеряно HTML-кодирование при чтении атрибута из поля ввода