@JoveLebedev

Можно ли хранить массивы большого обьема в localstorage?

Обдумываю сценарий отправки и получения сообщений по XMPP.
Начну с получателя. Юзер открывает сайт, авторизуется, и сразу после этого получает массив последних 100 исторических + n непрочитанных сообщений из MySql в localstorage, откуда берутся данные для оповещения и наполнения страницы с "диалогами".

Если адресат отправляет сообщение, которое передается по XMPP, оно записывая в БД с метками "не прочитано", после чего, если у получателя открыта вкладка - сообщение добавляется в массив localstorage, из содержания которого, как я говорил, строится страничка с диалогами и он оповещается, а в противном случае пользователь загрузит новые сообщения из БД при входе. Т.е. таким образом я миную загрузку новых сообщений из БД.

По поводу этого у меня появились вопросы:
  • Можно ли хранить данные подобного рода в localstorage и как это отразится на производительности?
  • Безопасно ли это?
  • Возможно ли с точностью 100% определить открыта ли хоть одна вкладка на домене и если нет, то как поступить лучше в этом случае?
  • Какие у вас вообще мысли по поводу всего этого?
  • Вопрос задан
  • 2835 просмотров
Пригласить эксперта
Ответы на вопрос 1
effetto
@effetto
.Net разработчик
1) Хранить подобные данные можно, но никто не гарантирует объема хранилища, а так же сохранности содержимого.
2) Безопасно от кого? К сообщениям будет иметь доступ любой пользователь браузера на локальной ЭВМ.
3) Для протоколирования вкладок организуйте список уникальных ключей вкладок, установите время жизни этих переменных и обновляйте их раз в небольшой период.

Вообще по поводу всего этого мыслю, что хранить непосредственные конфиденциальные данные в незашифрованном виде в локальном хранилище не стоит. Используйте серверный вариант, а на клиенте храните хеши или guid ключи. Если же серверный вариант никак не пригоден, используйте шифрование методами javascript и внимательно следите за ключем, чтобы он не существовал в памяти браузера дольше, чем сеанс работы пользователя.

Рекомендую к использованию библиотеку jStorage.

Обращаю Ваше внимание на то, что не все браузеры поддерживают функционал надлежащим образом. Имейте бексовместимость.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы