Когда я должен использовать html5 sessionStorage? - PullRequest
17 голосов
/ 14 декабря 2011

Я узнал разницу между sessionStorage (сохраняется во время сеанса) и localStorage (сохраняется навсегда, если не удален).

Я вижу, что localStorage может использоваться как лучшая версия cookie. (больше размера, не отправляясь на сервер для каждого HTTP-запроса, как cookie).

Но для sessionStorage я думаю , когда я должен использовать это эффективно?

Я подумал о вводе данных пользователем в текстовые поля на странице A, а затем перешел на страницу B в той же вкладке или окне браузера, где страница B может искать sessionStorage.

Я не могу расширить мои предположения больше, чем сценарий выше. Может кто-нибудь сказать мне, как можно использовать sessionStorage?

Ответы [ 2 ]

21 голосов
/ 14 декабря 2011

При использовании динамических интерфейсов, управляемых ajax, часто ничто не хранит текущее состояние того, как интерфейс выглядит (например, какая вкладка выбрана).sessionStorage может использоваться для сохранения состояния интерфейса, поэтому, возвращаясь к странице, вы можете восстановить экран так, как его смотрел пользователь.

Другое использование будет, если глубина нескольких страницвы работаете с одним объектом, вы можете сохранить идентификатор как глобальную переменную: currentInvoiceId.

Пользовательские настройки, которые необходимы на каждой странице, например, специальный макет или шаблон, могут быть загружены сразу.и поместите в sessionStorage для легкого доступа.

Некоторые вещи, которые вы хотите, чтобы пользователь видел только один раз при входе в систему, например всплывающее окно новостей.Вы можете хранить, что они видели это уже в sessionStorage.Это также будет работать для действий, которые вы хотите, чтобы пользователь выполнял только один раз для входа в систему.

Это хорошая альтернатива передаче данных между страницами с использованием viewstate, скрытых полей <input> или параметров URL.

1 голос
/ 01 февраля 2019

Основная причина использования sessionStorage - для случаев, когда, если бы ваш пользователь должен был дважды открыть одну и ту же страницу на двух разных вкладках, вы бы хотели выделить отдельные области хранения для этих двух вкладок.Например, рассмотрим сайт, где вы покупаете билет (и вы можете купить только один билет, например, поток авиабилетов, в отличие от случая с корзиной для покупок).Если пользователь попытается купить два билета на двух разных вкладках, вы не захотите, чтобы эти два сеанса мешали друг другу.sessionStorage позволяет независимо отслеживать эти сеансы при нескольких загрузках страниц.

...