我有一个应用程序,我希望在Windows之间共享数据。数据几乎总是小于5MB,但在某些情况下可能是7MB或更多。为了在窗口之间共享这些数据,我需要将数据以块的形式写入本地存储,并且一旦收集了数据,就将其替换为要收集的下一个块。
我的问题是。如何使用javascript计算?我不仅需要计算数据的字节大小,而且我还需要计算我将给出“数据包”数据的任何头,所以当它被接收时,它可以连接到右边(不完整)“数据包”中。其他窗户。在本地存储中,我该如何理解,
一个。有多少数据?
和
B中。我的数据会占用多少空间?
答案 0 :(得分:0)
规格中没有标准尺寸。 This StackOverflow answer显示两个引号,大多数浏览器的默认值为5mb,Internet Explorer的默认值为10mb。第二个引用很重要,因为它说每个浏览器都为用户提供了自定义此限制的能力。无法检测您是否接近极限。
如果超出浏览器的配额,则W3C spec setItem
方法会抛出QuotaExceededError
。
关于存储数据的大小,您存储的是字符串。当然,你可以达到5mb或10mb,但这是一个庞大的数据量。要获得透视图,请查看大小为5mb的文本文件。虽然这可能无法准确描述您可以使用localStorage
存储多少文本,但它仍然会很大!要么结束,在实现使用setItem
的代码时,请务必检查是否抛出了异常。