gpt4 book ai didi

Javascript - 保存到磁盘的文件卡在 Chrome 的内存中

转载 作者:行者123 更新时间:2023-11-29 14:48:12 24 4
gpt4 key购买 nike

我有这个代码:

function saveFile(str, part) {
var textFileAsBlob = new Blob([str], {type:"text/plain"});
var fileNameToSaveAs = "Parsed audio - part "+part;

var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";

if (window.URL != null)
{
// Chrome allows the link to be clicked
// without actually adding it to the DOM.
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
}
downloadLink.click();
}

它工作正常,除了 Chrome 的这个问题:blob 的“足迹”或任何保存在 Chrome 主进程内存中的东西。当下载窗口打开时,整个 blob(在我的例子中是 250MB!)被复制到主进程的内存中。这有点糟糕,因为如果我保存多个文件,我最终会将内存填满 750MB,此时 chrome 会停止下载文件并出现“未找到”错误。图片:http://i.stack.imgur.com/j5PUn.jpg

我是在犯一些愚蠢的错误还是这是 Chrome 的错?我可以清理 Chrome 的内存来解决这个问题吗?

最佳答案

作为my comment似乎是您正在寻找的答案,我已将其作为实际答案


您没有在点击后释放 blob URL,这意味着 GC 无法摆脱 blob

// after the click
URL.revokeObjectURL(downloadLink.href);

关于Javascript - 保存到磁盘的文件卡在 Chrome 的内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29878506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com