簡體   English   中英

在本地存儲中存儲壓縮的 json 數據

[英]Storing compressed json data in local storage

我想將 JSON 數據存儲在本地存儲中。 有時存儲的數據可能超過 5MB(每個域的瀏覽器允許的最大閾值)。 無論如何我可以壓縮或壓縮數據並將其存儲在本地存儲中嗎? 如果對大數據上的每個 JS 函數進行壓縮和解壓縮,會增加多少延遲?

我正在使用這個 json 數據在網頁上顯示......它就像一個靜態數據,對於整個會話來說幾乎是相同的。 我們在此 json 數據上提供搜索、過濾等操作...每當用戶輸入關鍵字時,我都會在此 json 數據中進行搜索,該數據存儲在本地存儲中,而不是調用服務器

由於 localStorage 功能似乎僅限於處理字符串鍵/值對,您可以做的是使用lz-string 庫將 json 對象字符串化並在將其存儲在 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/因為我已經復制了完整的腳本,所以在小提琴的末尾尋找正在運行的代碼

如果您正在處理 UTF 字符,請使用compressToUTF16decompressFromUTF16但請注意,生成的字符串因此比compress生成的字符串大 6.66%。 因此,僅在需要時才使用utf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM