Помимо того, что он не является постоянным и ограниченным только текущим окном, существуют ли какие-либо преимущества (производительность, доступ к данным и т.д.) для хранения сеанса через локальное хранилище?
localStorage и sessionStorage расширяют хранилище. Между ними нет никакой разницы, за исключением предполагаемого "непостоянства" sessionStorage
.
То есть данные, хранящиеся в localStorage
сохраняются до тех пор, пока не будут явно удалены. Внесенные изменения сохраняются и доступны для всех текущих и будущих посещений сайта.
Для sessionStorage
изменения доступны только для каждого окна (или вкладки в браузерах, таких как Chrome и Firefox). Внесенные изменения сохраняются и доступны для текущей страницы, а также для будущих посещений сайта в том же окне. После закрытия окна хранилище удаляется.
Единственное различие заключается в том, что localStorage имеет другое время истечения срока действия, sessionStorage
будет доступен только тогда, когда и в открывшемся окне оно открыто. localStorage
длится до тех пор, пока вы его не удалите или пользователь удалит его.
Предположим, что вы хотите сохранить имя пользователя и пароль для входа в систему, которые вы хотели бы использовать sessionStorage
over localStorage
по соображениям безопасности (т.е. Другой человек, обращающийся к своей учетной записи позднее).
Но если вы хотите сохранить пользовательские настройки на своем компьютере, вам, вероятно, понадобится localStorage
. В целом:
localStorage
- использовать для долгосрочного использования. sessionStorage
- используйте, когда вам нужно сохранить что-то, что меняется или что-то временное
Несколько других моментов, которые могут быть полезны для понимания различий между локальным и сеансовым хранилищем
Как локальное хранилище, так и хранилище сеансов привязаны к исходному документу, поэтому
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Все указанные выше URL будут не совместно использовать одно и то же хранилище. (Путь уведомления к веб-странице не влияет на веб-хранилище)
Хранилище сеансов отличается даже для того, чтобы документ с той же политикой происхождения открывался на разных вкладках, поэтому одна и та же веб-страница открыта на двух разных вкладках не может совместно использовать одно и то же хранилище сеансов.
Локальное и сеансовое хранилище также ограничено поставщиками браузеров. Таким образом, данные хранения, сохраненные IE, не могут быть прочитаны Chrome или FF.
Надеюсь, что это поможет.
Основное различие между localStorage
и sessionStorage
заключается в том, что sessionStorage
является уникальным для каждой вкладки. Если вы закроете вкладку sessionStorage
, удалите ее, localStorage
не будет. Также вы не можете общаться между вкладками:)
Еще одна тонкая разница заключается в том, что, например, в Safari (8.0.3) localStorage
имеет ограничение 2551 k символов, но sessionStorage
имеет неограниченное хранилище
В Chrome (v43) оба localStorage
и sessionStorage
ограничены 5101 k символами (без разницы между обычным/приватным режимом)
В Firefox оба localStorage
и sessionStorage
ограничены 5120 k символами (без разницы между нормальным/инкогнито)
Нет никакой разницы в скорости:)
Там также проблема с Mobile Safari и Mobile Chrome, Safari для частного режима и Chrome имеет максимальное пространство в 0KB
Локальное хранилище может хранить до 10 Мб автономных данных (в хром 10 мб, в других браузерах 5 мб), тогда как хранение сеанса может хранить до 5 мб данных. Но файлы cookie могут хранить только 4kb текстовые данные. Подробнее см. здесь
sessionStorage - это то же самое, что и localStorage, за исключением того, что он хранит данные только для одного сеанса, и он будет удален, когда пользователь закроет окно браузера, которое его создало.
производительность, мои (сырые) измерения не обнаружили разницы в 1000 пишет и читает
безопасность мудрая, интуитивно казалось бы, что localStore может быть закрыт перед sessionStore, но не имеет конкретных доказательств - может быть, кто-то другой делает?
функциональный мудрый, согласный с digitalFresh выше
Нет никакой разницы между ними, кроме Storage, но sessionStorage для сеанса (вкладка или для окна) и localStorage существует для домена до тех пор, пока он явно не будет удален (вызов метода clear или сброс денежных средств браузера).
Хранилище сеансов Ya и локальное хранилище одинаковы по сравнению с тем, которое является локальным хранилищем, будут хранить данные до тех пор, пока пользователь не удалит кеш и файлы cookie и данные хранения сеанса не сохранятся в системе до тех пор, пока мы не закроем сеанс i, e пока мы не закроем созданное окно хранения сеанса.
Преимущество хранения сеанса над локальным хранилищем, на мой взгляд, заключается в том, что он имеет неограниченную емкость в Firefox и не будет сохраняться дольше, чем сеанс. (Конечно, это зависит от вашей цели.)
Локальное хранилище: оно хранит данные пользовательской информации без истечения срока действия, эти данные не будут удалены, когда пользователь закрывает окна браузера, которые будут доступны для дня, недели, месяца и года.
//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
Хранилище сеансов: это то же самое, что и локальная дата хранения, за исключением того, что он удалит все окна, когда браузеры закрываются веб-пользователем.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
Подробнее нажмите
sessionStorage
поддерживает отдельную область хранения для каждого данного источника, доступную на время сеанса страницы (до тех пор, пока браузер открыт, включая перезагрузку и восстановление страницы)
localStorage
делает то же самое, но сохраняется даже при закрытии и повторномlocalStorage
браузера.
Я взял это из https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API