2015-04-30 2 views
48

Я работаю в приложении, где мне нужно сохранить некоторые данные во время входа в систему, и у меня есть этот вопрос, в чем разница между localStorage, sessionStorage, cookies ???localStorage vs sessionStorage vs cookies

Я спрашивал, что я могу использовать, чтобы сохранить некоторые данные в DOM, даже если пользователь обновил страницу, некоторые люди говорят: используйте sessionStorage или localStorage, тогда кто-то придумал идею использования ngCookies потому что он работает в каждом браузере, но что я должен использовать?

+1

Я думаю, что [эта ссылка] (http://stackoverflow.com/a/19869560/1252158) объяснит это более широко. –

+1

Также обратите внимание, что файлы cookie сеанса живут до тех пор, пока открыто окно браузера WINDOW (не вкладка, в которой они были установлены). НО sessionStorage будет отменен, как только вы закроете вкладку ... – yar1

ответ

68

LocalStorage и sessionStorage являются так называемые WebStorages и особенности HTML5.

localStorage хранит информацию до тех пор, пока пользователь не удаляет их.

sessionStorage хранит информацию до тех пор, пока идет сессия. Обычно, пока пользователь не закрывает вкладку/браузер.

печенье является просто печеньем, которые поддерживаются старыми браузерами и обычно является запасным вариантом для рамок, которые используют выше WebStorages.

В отличие от этого файлы cookie могут хранить меньше информации, чем WebStorages, а информация в WebStorages никогда не передается на сервер.

Имейте в виду, что в ЕС существует регламент, который требует, чтобы сайты информировали своих пользователей об использовании файлов cookie. Я не знаю, также ли это относится к WebStorages

+0

Что вы рекомендуете мне использовать? данные, которые мне нужно сохранить, - это только имя пользователя и адрес электронной почты в DOM. Не приложение, требующее полной безопасности. – NietzscheProgrammer

+3

Зависит, если вам нужны старые браузеры (pre HTML5) для поддержки, вы хотите использовать файлы cookie. Кроме того, я лично использовал бы хранилища (localStorage, если вам нужны данные «навсегда», иначе sessionStorage), потому что мне нравится использовать новые функции;) – Rouby

+8

«Я не знаю, относится ли это также к WebStorages» - это так. https://ico.org.uk/for-organisations/guide-to-pecr/cookies-and-similar-technologies/ – Quentin

16

sessionStorage объект: В sessionStorage объект хранит данные только для сеанса, а это означает, что данные хранятся, пока браузер (или вкладке) закрывается. он недоступен, если файл запускается локально.

Данные, хранящиеся в объекте sessionStorage, доступны только со страницы, на которой первоначально хранились данные; так что это не соответствует Вашему требованию

объект LocalStorage: Данные, сохраненные с помощью объекта LocalStorage это сохраняется до тех пор, пока не будет специально удалены с помощью JavaScript или пользователь очищает кэш браузера.

Данные, хранящиеся в объекте localStorage, доступны только из домена, который первоначально хранил данные.

Для вашего случая, я думаю, вы считаете, что используете cookie или сеанс, pls. note cookie имеет ограничение размера 4K на сервер.

+0

Я не думаю, что вы упоминали секунду о sessionStorage правильно, по крайней мере, не в контексте углового. Согласно спецификациям каждый sessionStorage связан с контекстом просмотра верхнего уровня, который будет одинаковым для каждой страницы в угловом приложении. – Rouby

+0

все, что мне нужно, чтобы сохранить информацию о пользователе, такую ​​как электронная почта, имя пользователя и, возможно, фотография, было бы достаточно для использования сеанса 4K или файлов cookie? – NietzscheProgrammer

+0

должно быть в порядке, чтобы поместить электронную почту и имя пользователя в файлы cookie, я не думаю, что вам нужно сохранять фотографии –

3

Дополнение к другим ответам, WebStorages не может получить доступ к субдомену и/или родительскому домену.

-2

Куки-файлы просто хранят данные 4 килобайта и как время истечения срока действия.

LocalStorage постоянные куки имеет 4 МБ данные будут удалены, когда пользователь удаляет кэш

0

LocalStorage: 1. Ограничение данных: 5 Мб 2.Данные, передаваемые для каждого запроса HTTP: нет

sessionStorage: 1. Ограничение данных: 5 Мб 2. Данные, передаваемые для каждого запроса HTTP: нет 3. Данные не будут очищены однажды окно или вкладка закрывается

Я бы сказал, используйте localstorage/sessionStorage, если данные не чувствительны. Другие используют файлы cookie.