使用JS删除特定的Blob数据或完全清除所有存储的Blob数据

时间:2018-11-21 17:24:26

标签: javascript blob

在我的应用程序中,可以生成PDF。创建和下载它们后,我使用的库不会处理它们。最终,在生成足够的PDF之后,存储的Blob数据变得如此之大,以至于使浏览器崩溃。

一种解决方案是在打印后刷新浏览器。但这确实会破坏用户体验,因为他们会丢失当前的打印参数。

解决方案是将打印参数存储在sessionStorage或其他内容中,以便在刷新后将其恢复。

无论如何,最简单的解决方案是在完成打印后清除特定的blob数据,或清除所有blob数据。

这就是我看到的chrome:// blob-internals。第一项是我要删除的内容;该行下面的两项只是对Blob的URL引用。

我如何专门清除此内容或仅清除Javascipt中的所有斑点?

enter image description here

尝试执行以下操作:

handleDownload(filename, blob, url, e) {
    e.preventDefault();
    saveAs(blob, filename);
    this.props.pdfPrint(false);
    delete blob;
}

但这会导致Deleting local variable in strict mode错误。尝试:

handleDownload(filename, blob, url, e) {
    e.preventDefault();
    saveAs(blob, filename);
    this.props.pdfPrint(false);
    URL.revokeObjectURL(url);
    var test = {};
    test = blob
    delete test.blob;
}

这只是删除对Blob的引用之一,但不会删除其自身的Blob。

在阅读本文时,所有引用都必须先删除:

https://stackoverflow.com/a/22899690/3123109

0 个答案:

没有答案