我一直在 svelte-simple-modal 库的帮助下加载模态,我想清理用于加载存储在内存中的图像的变量,该变量以前通过 JSON 从后端获得。
所以我在 Modal.svelte 的标签中有这些重要的东西(使用模态窗口加载的组件):
arrayBufferCover = base64ToArrayBuffer(response[0].details[0].cover);
blob = new Blob([arrayBufferCover], {type: "image/jpeg"});
blobCoverURL = URL.createObjectURL(blob);
onDestroy(() => URL.revokeObjectURL(blobCoverURL));
这就是我在 Modal.svelte 的 HTML 部分中的内容:
<img alt="cover" src={blobCoverURL} />
onDestroy 事件在模态窗口关闭后发生,我完全确定确实如此,但是当我检查控制台时,我仍然在源部分中列出了多个对象(每次打开模态时都会创建一个对象)。与此相反,我从 chrome://blob-internals/ 获得的对象列表会定期变小,这可能意味着清理工作已正确完成,只是控制台中的源没有刷新,但我真的不确定,特别是因为我看到比较这两个报告的 ID 不同?