amp*_*and 2 javascript caching local-storage
我想不出一个好头衔,所以希望能做到.
我正在做的是创建一个离线HTML5 webapp."出于某些原因"我不希望将某些文件放在缓存清单中,而是希望将内容放在localStorage中.
所有测试均在Google Chrome for Mac/Mac OS 10.6.6中完成
我有4个.JSON文件,3,120,792大小完全是字节大小.首次访问(在线)应用程序时,我将这个JSON内容下拉并将其放在一个字符串变量中,比方说str.之前存储的JSON字符串,我所有的剥离\n和\t,和更换\"用',最大限度地减少字符串的长度.
以下是字符串长度(Chrome控制台中的str.length):
original str : 3,117,764 (this is a concatenation of the contents of the 4 JSON files)
reformatted JSON: 2,732,249 (not too shabby - should save me a few bytes)
Run Code Online (Sandbox Code Playgroud)
但是,现在当我尝试将此字符串存储在localStorage中时,我收到的错误是我已超出缓存大小(Error: QUOTA_EXCEEDED_ERR: DOM Exception 22).但是此页面没有其他缓存(我已手动删除了所有Google Chrome缓存文件).
为什么会这样?
存储在缓存中时字符串的大小是多少?
如何最大限度地减小此大小以充分利用localStorage?
编辑添加:我已尝试将字符串的1,000,000个字符保存到localStorage(localStorage.setItem('x',str.substr(1,1000000))中.当我在Chrome的缓存文件夹中检查localStorage文件大小时,它是2MB.这是一个sqlite数据库.看起来浏览器使用的是实际的localStorage数据库大小,而不是存储在其中的数据大小.这当然很糟糕,但可能是标准行为.我想你可以在localStorage中存储的最长的字符串是大约2,500,000个字符?
http://jsfiddle.net/brucealdridge/j6KdJ/ 2,500,000 个字符适用于我的 ("5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.9.Safari/129.0 534.30") 3,000,000 不是。我在想这可能是我的编码问题,但我刚刚检查过,它不是
| 归档时间: |
|
| 查看次数: |
14261 次 |
| 最近记录: |