Хранение сжатых json-данных в локальном хранилище

Я хочу хранить данные JSON в локальном хранилище. Иногда данные могут быть более 5 МБ (максимальный порог, разрешенный браузерами для каждого домена). В любом случае я могу сжать или закрепить данные и сохранить их в локальном хранилище? Сколько латентности оно добавит, если сжатие и декомпрессия для каждой функции JS для больших данных?

Я использую эти данные json для отображения на веб-странице..... Это похоже на статические данные, которые в основном одинаковы для всего сеанса. мы предоставляем такие действия, как поиск, фильтр и т.д. по данным json... Когда пользователь вводит ключевое слово, я просматриваю данные json, которые хранятся в локальном хранилище, а не делают вызов на сервер

Ответ 1

Поскольку функция localStorage, по-видимому, ограничена обработкой только пар строк/значений, что вы можете сделать, это использовать lz-string library для подкрепления json object и сжать его перед сохранением в localStorage

Использование

// sample json object
var jsonobj = {'sample': 'This is supposed to be ling string', 'score': 'another long string which is going to be compressed'}

// compress string before storing in localStorage    
localStorage.setItem('mystring', LZString.compress(JSON.stringify(jsonobj)));

// decompress localStorage item stored
var string = LZString.decompress(localStorage.getItem('mystring'))

// parse it to JSON object
JSON.parse(string);

Проверьте jsfiddle http://jsfiddle.net/raunakkathuria/7PQtC/1/, так как я скопировал полный script, так что ищите исполняемый код в конце скрипта