gpt4 book ai didi

sqlite - 确定 HTML5 数据库内存使用情况

转载 作者:行者123 更新时间:2023-11-28 00:28:25 26 4
gpt4 key购买 nike

我正在为我的 Google Chrome 扩展程序添加 sqlite 支持,以存储历史数据。

创建数据库时,需要设置最大大小(我用了5MB,很多例子都建议)

我想知道我实际使用了多少内存(例如在添加 1000 条记录之后),以了解何时会达到 5MB 的限制,并采取相应的行动。

Chrome 控制台不会显示此类数字。谢谢。

最佳答案

如果您愿意,可以计算这些数字。基本上,localStorage 和 webStorage 的默认限制是 5MB,其中名称和值保存为 UTF16,因此就存储字符而言,它实际上是 2.5MB 的一半。在 webStorage 中,您可以通过在 list 中添加“unlimited_storage”来增加它。

同样的事情也适用于 WebStorage,但您必须遍历所有表格并计算出每行有多少个字符。

在 localStorage 中,您可以通过执行填充脚本来测试它:

var row = 0;
localStorage.clear();
var populator = function () {
localStorage[row] = '';
var x = '';
for (var i = 0; i < (1024 * 100); i++) {
x += 'A';
}
localStorage[row] = x;
row++;
console.log('Populating row: ' + row);
populator();
}
populator();

上面的代码应该会在第 25 行崩溃,因为没有足够的空间使其大约为 2.5MB。您可以反过来计算每行有多少个字符,这决定了您有多少空间。

另一种方法是始终添加“有效负载”并检查异常是否存在,如果存在,则您知道空间不足。

try {
localStorage['foo'] = 'SOME_DATA';
} catch (e) {
console.log('LIMIT REACHED! Do something else');
}

Internet Explorer 做了一些叫做“剩余空间”的事情,但这在 Chrome/Safari 中不起作用: http://msdn.microsoft.com/en-us/library/cc197016(v=VS.85).aspx

关于sqlite - 确定 HTML5 数据库内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899983/

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