簡體   English   中英

Javascript - 保存到磁盤的文件卡在Chrome的內存中

[英]Javascript - File saved to disk is stuck in Chrome's memory

我有這個代碼:

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的內存以擺脫這個問題嗎?

由於我的評論似乎是您正在尋找的答案,我已將其作為實際答案


您沒有在點擊后釋放blob URL ,這意味着GC無法擺脫blob

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM