2016-04-13 6 views
6

У меня есть javascript, который проверяет объект в sessionStorage и использует его для пополнения поля ввода. Я использую это, чтобы помочь пользователям на моем сайте, если они оставляют незавершенную форму и либо перемещаются, либо пытаются отправить форму после истечения срока их работы.Когда сеансStorage фактически очищен?

Мое понимание заключается в том, что sessionStorage НЕ привязан к серверному сеансу, он связан с браузером, поэтому независимо от того, есть ли у меня новый сеанс на сервере или нет, не имеет значения.

Это было поддержано, когда я тестировал это первоначально несколько месяцев назад. Однако, похоже, это уже не так, и когда я очищаю свой cookie сеанса и перезагружаю свою страницу, мой сеанс хранения также очищается. Это использует как Chrome, так и Firefox.

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

JS, чтобы получить значение моего сохраненного объекта

JSON.parse(sessionStorage.getItem("draftPost") || null); 

JS, чтобы сохранить значение

$("#wallText").on("change",function(){ 
      sessionStorage.setItem("draftPost",JSON.stringify(draftPost)); 
     }); 
+0

Здесь подробно объясняется: https://html.spec.whatwg.org/multipage/webstorage.html#the-sessionstorage-attribute – Barmar

+0

И кратко кратко изложено здесь: https://developer.mozilla.org/en -US/docs/Web/API/Window/sessionStorage – Barmar

+0

На последней странице: ** Открытие страницы в новой вкладке или окне приведет к инициированию нового сеанса, который отличается от того, как работают cookie сеанса. ** – Barmar

ответ

1

хранения Session очищается при закрытии браузера. Он сохраняется на перезагрузке страницы и восстанавливается. См.: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

+0

Это та же ссылка, которую я представил в своем комментарии.Но его вопрос утверждает, что он не делает того, чего он ожидал от чтения этого. – Barmar

3

Что-то иметь в виду с sessionstorage на мобильном сафари.

Как заявил mozila.org документ ссылается timolawl:

Примечание: с прошивкой 5.1, Safari салоне мобильной LocalStorage данные в папке кэша, которая подлежит очистке от времени, по велению ОС, обычно, если пространство короткое.

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

Например, открыв 5 вкладок, а затем загрузив новую страницу с множеством java и css, вы сможете очистить, уничтожив все переменные sessionstorage.

Однако переменные localstorage сохраняются.

Кроме того, на сафари (я считаю, как на рабочем столе, так и на мобильных устройствах) в приватном режиме просмотра будет запрещено использовать localstorage или sessionstorage.

 Смежные вопросы

  • Нет связанных вопросов^_^