У меня есть сайт, который сохраняет строковый объект JavaScript в sessionStorage. Он хорошо работает на настольных браузерах - данные сохраняются при перезагрузке страниц, как описано в MDN.sessionStorage неожиданно отключен на Android
На телефонах Android нередко перезагружается вкладка, когда пользователь переключается с другой вкладки или когда браузер возвращается с фона на передний план, и я ожидаю, что sessionStorage будет сохраняться. Это, однако, не так. SessionStorage пропал без вести, как будто создается новый сеанс.
Я подумал об использовании localStorage вместо этого, который не истечет, даже если сессия закрыта. На самом деле это не разобрано во всех моих проблемах, поскольку, как я полагаю, пользователь может открывать его несколько раз на нескольких вкладках и делать разные вещи на каждом из них.
Так что мои вопросы:
- Является ли поведение sessionStorage описано выше, как ожидалось? Если нет, что я могу сделать, чтобы исправить это?
- Если поведение такое, как ожидалось, и я должен полагаться на localStorage, как я могу определить объект, сохраненный для каждой отдельной вкладки?
Заранее благодарим за вашу помощь!
Я могу понять удаление sessionStorage, если пользователь закрывает вкладку. Однако для описанного сценария пользователь фактически не закрывает вкладку. Он просто переключается на другую вкладку или отправляет браузер на задний план, а затем возвращается. В среде рабочего стола я уверен, что ни одна из этих операций не приведет к очистке sessionStorage; в то время как на мобильных устройствах поведение кажется другим. – CLDev
Решение localStorage будет работать, если пользователь отобразит только один экземпляр моего сайта. Если мой веб-сайт открыт несколько раз на нескольких вкладках, какой наилучший подход однозначно идентифицировать каждый из них и вернуть соответствующий сохраненный объект? – CLDev