2013-07-15 3 views
2

Я знаю, localStorage поддерживает только до 5 МБ. В нашем приложении мы планируем использовать localStorage (sessionStorage не подходит для нашей потребности, поскольку мы поддерживаем несколько вкладок). В настоящее время существует только один большой объект javascript, который сериализуется и хранится в localStorage, в будущем он может превышать до 15 объектов, но определенно не более того.Поиск и очистка LocalStorage

Проблема в том, что очистка localStorage. Поскольку наше приложение позволяет пользователю вводить логин несколькими способами (SSO и т. Д.). Таким образом, без приземления на странице входа в систему они могут войти в наше приложение, а также выходить в другое приложение также будут подписаны в нашем приложении или закрыть браузер. По соображениям безопасности нам нужно очистить localStorage после завершения сеанса пользователя.

Итак, мы планировали хранить personId в localStorage, в каждом запросе страницы вместе с ответом html мы отправляем personId с сервера, а если он не совпадает с личным идентификатором localStorage, тогда он очистит localStorage.

Мое сомнение здесь, поиск в localStorage не является асинхронным, так что потребуется много времени для поиска personId из 15 ключей (у кого есть большая строка как значение)?

localStorage.setItem("personId", 1234); 
localStorage.setItem("object1", "A very big serialized form of javascript object gets stored"); 
+0

Вы имеете в виду, когда пользователь нажимает кнопку выхода из системы? Потому что вы не можете реагировать на сеанс. –

+0

Что делать, если пользователь закрывает браузер, а не нажав «Выход»? – Nageswaran

ответ

2

значения Пишущего очень быстро, и нет никакой существенной разницы между большими и короткими значениями: http://jsperf.com/local-storage-set

Вы можете протестировать поиск на этом сайте тоже ... Вы могли бы поделиться кодом поиска тоже, так другие могут взглянуть на него.