- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 HTML5 构建文件存储,并且使用 indexedDB 作为存储,我通过 xmlHttpRequest 从服务器请求文件,响应类型为 arrayBuffer(对于 chrome)和 blob(对于其他浏览器)。
即使文件集合大小为 500MB 或更大,一切都很好(嘿,它甚至可以达到 GB)。但是当我将文件添加到 indexedDB 时,我注意到一些奇怪的事情,它会在 时触发错误。单文件超过~120MB,因此不存储。但是当文件小于 120MB 时,它会存储它。
请注意,仅在存储单个文件> 120MB时才会出现此错误,例如,200MB的.mp4文件会触发错误,但如果我有5个视频,每个视频的大小为100MB(所以总数将是500MB)一切都会好起来的。
我想知道这是限制规则还是一些故障,两者有相同的错误。我没有找到任何关于它的文档。我在 IE 和 Chrome 中测试了它。
编辑:
好的,我在存储文件时显然在 indexedDB 的 add 或 put 函数中遇到了这个错误:
在 e.target.error.message 中:
序列化值太大(size=140989466 bytes, max=133169152 bytes)
最佳答案
在问这个问题时,Chrome 仍然不支持将 Blob 保存到 IndexedDB,它 only came the next month .
对于现在面临同样问题的任何人,直接存储 Blob 或文件,而不是 ArrayBuffers。
与 ArrayBuffers 不同,将 Blob 保存到 IDB 不需要序列化其数据,the serialization steps of a Blob只是为了制作 js 对象的快照并保持链接到相同的底层字节序列,它本身没有被克隆。
您应该面对的唯一限制是 the one of the db itself .
取自 Chrome 公告的代码:
var store = db.transaction(['entries'], 'readwrite').objectStore('entries');
// Store the object
var req = store.put(blob, 'blob');
req.onerror = function(e) {
console.log(e);
};
req.onsuccess = function(event) {
console.log('Successfully stored a blob as Blob.');
};
关于javascript - indexedDB 的每条记录大小限制是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362839/
我刚开始使用 Gnu Plot 并创建了一些简单的绘图。但是现在我遇到了一个新问题。 输入是这样的 csv 文件: name;n0;n1;n2 Benj;1;3;2 Silv;6;1;2 Steffi
我在 MongoDB 中有 2700 条记录。每个文档的大小约为 320KB。我使用的引擎是wiredTiger,集合的总大小约为885MB。 我的 MongoDB 配置如下: systemLog:
我是一名优秀的程序员,十分优秀!