检查MDN我发现以前
BlobBuilder
我可以打电话给你
blobBuilder.append
根据mdn继续向blob添加数据
Blobbuilder公司
不赞成
Blob
constructor
是的。不幸的是
团块
构造函数在构造时需要内存中的所有数据。我的数据太大,无法在施工时存储。看着
File
API
也看不到任何东西。
有没有办法生成大型数据客户端并将其放入blob中?例如,我想渲染一个16kx16k的图像。未压缩的那是一个1大的图像。
我有一个算法可以一次生成一行或几行扫描行,但我需要一种方法将这些扫描行写入一个文件/blob中,然后在完成后,我可以使用标准方法让用户下载该blob,但是,我似乎找不到一个api,让我将数据流到blob中。
我唯一能想到的就是我能
团块
从
团块
所以我想我可以把图像的每一部分都写到一个单独的blob中,然后把所有的blob发送到另一个blob中,得到一个大blob。
这是唯一的解决办法吗?好像有点…很奇怪。不过,如果成功了,那么_/
有人投票决定结束,因为他们不明白这个问题。这是另一种解释。
给一个家伙写4个
const arrays = [];
for (let i = 0; i < 4096; ++i) {
arrays.push(new Uint8Array(1024 * 1024));
}
const blob = new Blob(arrays);
上面的代码将崩溃,因为浏览器将杀死使用过多内存的页面。使用
Blobbuilder公司
我本可以做些
const builder = new BlobBuilder();
for (let i = 0; i < 4096; ++i) {
const data = new Uint8Array(1024 * 1024);
builder.append(data);
}
const blob = builder.getBlob(...);
这不会耗尽内存,因为周围的数据永远不会超过1MEG。浏览器可以刷新附加到
Blobbuilder公司
输出到磁盘。
有什么新的方法可以实现一个blob写4个gig?它是只写大量的小blob,然后用它们生成一个更大的blob,还是有一些更传统的方式,传统的方式意味着进入某个对象/文件/blob/存储。