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

Sqlite 确定HTML5数据库内存使用情况,sqlite,html,google-chrome,memory-management,google-chrome-extension,Sqlite,Html,Google Chrome,Memory Management,Google Chrome Extension,我正在向我的Google Chrome扩展添加sqlite支持,以存储历史数据 创建数据库时,需要设置最大大小(我使用了5MB,正如许多示例中所建议的那样) 我想知道我实际使用了多少内存(例如在添加了1000条记录之后),以了解何时会达到5MB限制,并相应地采取行动 Chrome控制台没有显示这样的数字。 谢谢。我想补充一点建议 如果是Chrome扩展,为什么不使用Web SQL存储或索引数据库 来源:如果你愿意,你可以计算这些数字。基本上,localStorage和webStorage的默

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

创建数据库时,需要设置最大大小(我使用了5MB,正如许多示例中所建议的那样)

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

Chrome控制台没有显示这样的数字。
谢谢。

我想补充一点建议

如果是Chrome扩展,为什么不使用Web SQL存储或索引数据库


来源:

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

同样的事情也适用于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();
Internet Explorer做了一件叫做“remainingSpace”的事情,但这在Chrome/Safari中不起作用:

是的,我在使用Web SQL(我写了“sqlite”,我认为它是一样的)我认为Mohamed写的主要是关于本地存储的,因为它们有相同的限制,更容易制作示例。是的,制作示例更容易:)Chrome使用sqlite作为其用于Web存储和本地存储的数据库存储。但它们都有相同的含义。@UVL。Web SQL与SQLite不同。特定的浏览器或应用程序可以使用SQLite作为其WebSQL、localStorage和IndexedDB。但这是一个实施问题,两者都是不同的事情。这就是为什么我建议您使用API版本(因为我认为您使用的是独立的实现)。
try {
  localStorage['foo'] = 'SOME_DATA';
} catch (e) {
  console.log('LIMIT REACHED! Do something else');
}