JavaScript中是否有用于追加Blob数据的函数?我目前使用以下方法:
var bb = new Blob(["Hello world, 2"], { type: "text/plain" });
bb = new Blob([bb, ",another data"], { type: "text/plain" });
而且 BlobBuilder
函数在 Chrome 中不可用。
JavaScript中是否有用于追加Blob数据的函数?我目前使用以下方法:
var bb = new Blob(["Hello world, 2"], { type: "text/plain" });
bb = new Blob([bb, ",another data"], { type: "text/plain" });
而且 BlobBuilder
函数在 Chrome 中不可用。
Blob对象是“不可变的”,因此在创建后无法更改。根据您最初的问题,构建一个将数据附加到现有Blob的新Blob是一个好的解决方案。
如果您每次附加部分时都不需要使用Blob对象,则可以跟踪一个部分数组。然后您可以不断地将内容附加到该数组中,并在需要Blob对象时在结尾处构造它。
var MyBlobBuilder = function() {
this.parts = [];
}
MyBlobBuilder.prototype.append = function(part) {
this.parts.push(part);
this.blob = undefined; // Invalidate the blob
};
MyBlobBuilder.prototype.getBlob = function() {
if (!this.blob) {
this.blob = new Blob(this.parts, { type: "text/plain" });
}
return this.blob;
};
var myBlobBuilder = new MyBlobBuilder();
myBlobBuilder.append("Hello world, 2");
// Other stuff ...
myBlobBuilder.append(",another data");
var bb = myBlobBuilder.getBlob();
BlobPart
,但只取最后一个(或第一个)Blob
。 - codenamezeroBlob
,我进行了一些测试,只要你不太频繁地创建新的 Blob
,性能损失几乎为零。系统似乎能够很好地处理它。只需将您的 Blob 放入 BlobPart[]
中,然后将其传递到 new Blob(yourBlobPartsArray)
中即可。 - codenamezero