Javascript 如何在indexeddb中存储/获取由字符串和Darray(音频/视频)组成的大数据
我在indexedDb中以串行方式存储字符串和二进制数据的混合,类似于Javascript 如何在indexeddb中存储/获取由字符串和Darray(音频/视频)组成的大数据,javascript,local-storage,blob,indexeddb,Javascript,Local Storage,Blob,Indexeddb,我在indexedDb中以串行方式存储字符串和二进制数据的混合,类似于 var mainData = [ {d : string}, {d : string}, {d : typedArray}, {d : typedArray}, {d : typedArray}, {d : string}, {d : string} ]; var myblob = new Blob([stringifyData], {type: "applicati
var mainData = [
{d : string},
{d : string},
{d : typedArray},
{d : typedArray},
{d : typedArray},
{d : string},
{d : string}
];
var myblob = new Blob([stringifyData], {type: "application/json"});
var myblob = new Blob(mainData, {type: 'application/octet-binary'}
现在我需要将这个数据从indexedDb转换成blob文件,并让用户下载这个文件
从这个导出的文件中,我需要原始格式的完整数据
字符串化方式
如果我将这些数据转换为blob文件作为JSON,方法如下
var mainData = [
{d : string},
{d : string},
{d : typedArray},
{d : typedArray},
{d : typedArray},
{d : string},
{d : string}
];
var myblob = new Blob([stringifyData], {type: "application/json"});
var myblob = new Blob(mainData, {type: 'application/octet-binary'}
文件的大小将是非常大的,这对我的情况是没有用处的
键入Darray方式
我无法将此数据转换为blob文件,例如
var mainData = [
{d : string},
{d : string},
{d : typedArray},
{d : typedArray},
{d : typedArray},
{d : string},
{d : string}
];
var myblob = new Blob([stringifyData], {type: "application/json"});
var myblob = new Blob(mainData, {type: 'application/octet-binary'}
这不起作用,因为indexedDb中存在字符串和类型化数组的混合未来数据
而mainData应该是值的数组(typedArray),而不是对象的数组
所以我的问题是
您似乎在问两个不同的问题:(1)如何将已保存的数据从索引数据库(或其他存储API)读取到live JS数据结构中(2)如何有效地将live JS数据结构序列化到Blob/文件中,然后将Blob/文件反序列化回live JS数据结构不清楚您是否对#1有问题,但如果你把它们混为一谈,那么解决第二个问题将更加困难。