Есть ли какие-либо преимущества (производительность, доступ к данным и т. Д.) Для хранилища сеансов по сравнению с локальным хранилищем, кроме непостоянного и ограниченного только текущим окном?
Есть ли какие-либо преимущества (производительность, доступ к данным и т. Д.) Для хранилища сеансов по сравнению с локальным хранилищем, кроме непостоянного и ограниченного только текущим окном?
Ответы:
localStorage и sessionStorage расширяют хранилище . Нет никакой разницы между ними, за исключением предполагаемого «непостоянства» sessionStorage
.
То есть, данные , хранящиеся в localStorage
упорствует , пока явно не будут удалены . Внесенные изменения сохраняются и доступны для всех текущих и будущих посещений сайта.
Для sessionStorage
, изменения доступны только на вкладке. Внесенные изменения сохраняются и доступны для текущей страницы на этой вкладке, пока она не будет закрыта. После закрытия сохраненные данные удаляются.
Единственное отличие состоит в том, что у localStorage другое время истечения, sessionStorage
он будет доступен только в том случае, если окно, в котором оно было создано, открыто. localStorage
длится до тех пор, пока вы не удалите его или пользователь не удалит его.
Допустим, вы хотели сохранить логин и пароль, которые вы хотели бы использовать sessionStorage
в 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 тыс. Символов ограничено, но объем памятиsessionStorage
не ограничен.
На Chrome (v43) оба localStorage
и sessionStorage
ограничены 5101 k символов (нет разницы между нормальным режимом / режимом инкогнито)
В Firefox оба localStorage
и sessionStorage
ограничены 5120 тыс. Символов (без разницы между обычным / приватным режимом)
Нет разницы в скорости вообще :)
Существует также проблема с Mobile Safari и Mobile Chrome, Safari и Chrome в приватном режиме имеют максимальный размер 0 КБ.
sessionStorage
это то же самое localStorage
, за исключением того, что он хранит данные только для одного сеанса, и он будет удален, когда пользователь закроет окно браузера, в котором он был создан.
По производительности, мои (грубые) измерения не обнаружили разницы на 1000 операций записи и чтения.
с точки зрения безопасности, интуитивно может показаться, что localStore может быть закрыт до сессии sessionStore, но у него нет конкретных доказательств - может быть, кто-то еще?
функционально, согласен с digitalFresh выше
Я. Хранилище сеансов и локальное хранилище одинаковы по поведению, за исключением того, что локальное хранилище будет хранить данные до тех пор, пока пользователь не удалит кеш, а файлы cookie и данные хранилища сеансов не сохранятся в системе, пока мы не закроем сеанс, т.е. окно хранения сеанса создано.
На мой взгляд, преимущество хранения сеансов над локальным хранением заключается в том, что оно имеет неограниченную емкость в 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
делает то же самое, но сохраняется, даже когда браузер закрыт и снова открыт.
Я взял это из https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API