gpt4 book ai didi

javascript - 超过 localStorage 配额(localStorage 大小!= 文件下载大小)& 如何检查 localStorage 大小

转载 作者:行者123 更新时间:2023-12-03 09:57:07 27 4
gpt4 key购买 nike

我想不出一个好的标题,所以希望可以。

我正在做的是创建一个离线 HTML5 webapp。 “出于某些原因”我不希望将某些文件放在缓存 list 中,而是希望将内容放在 localStorage 中。

所有测试均在 Google Chrome for Mac/Mac OS 10.6.6 中完成

我有 4 个正好是 3,120,792 的 .JSON 文件总字节数。首次访问(在线)该应用程序时,我将下拉此 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)

但是,现在当我尝试将此字符串存储在 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://arty.name/localstorage.html .

大小取决于浏览器 HTML5 实现

我的最后一次测试:
Chrome 13/Safari 5/IPAD 2:2.600.000 chr
火狐 4 : 5.200.000
歌剧 11:无限制

关于javascript - 超过 localStorage 配额(localStorage 大小!= 文件下载大小)& 如何检查 localStorage 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5814073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com