我将sqlite支持添加到我的Google Chrome扩展中,以存储历史数据。确定HTML5数据库内存使用情况
当创建数据库时,它被设置最大尺寸要求(我用的5MB,在许多例子表明)
我想知道我真的很喜欢使用(例如后多少内存添加1000条记录),了解何时达到5MB限制,并据此采取行动。
Chrome控制台不显示这些数字。 谢谢。
我将sqlite支持添加到我的Google Chrome扩展中,以存储历史数据。确定HTML5数据库内存使用情况
当创建数据库时,它被设置最大尺寸要求(我用的5MB,在许多例子表明)
我想知道我真的很喜欢使用(例如后多少内存添加1000条记录),了解何时达到5MB限制,并据此采取行动。
Chrome控制台不显示这些数字。 谢谢。
可以计算这些数字,如果你想。基本上,localStorage和webStorage的默认限制是5MB,其中名称和值保存为UTF16,因此它实际上是存储字符2.5 MB的一半。在webStorage中,您可以通过在清单中添加“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中没有所谓的 “remainingSpace”,但是,这并不在Chrome/Safari上: http://msdn.microsoft.com/en-us/library/cc197016(v=VS.85).aspx
我想添加一个建议。
如果它是Chrome扩展,为什么不使用Web SQL存储或索引DB?
http://html5doctor.com/introducing-web-sql-databases/
http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/
是的,我使用的Web SQL(我写的 “源码”,我认为这是一样的)我认为穆罕默德主要是关于本地存储的,因为它们有相同的限制并且更容易做出这个例子。 – Omiod 2010-10-10 17:29:08
是的,更容易做出示例:) Chrome使用SQLite作为WebStorage和LocalStorage的数据库存储。但他们都适用具有相同的含义。 – 2010-10-10 23:10:00
@UVL。 Web SQL与SQLite不同。一个特定的浏览器或可以使用SQLite作为它的WebSQL,localStorage和IndexedDB。但这是一个实施问题,两者都是不同的事情。这就是为什么我建议你使用API版本(因为我认为你使用的是独立实现)。 – Dave 2010-10-10 23:49:23
@nice回复。 thx共享。 – Dave 2010-10-10 23:49:42