单页应用使用 javascript 的 window.URL.createObjectURL 内存不释放的问题

2021-11-19 11:55:33 +08:00
 creanme

在组件销毁的时候执行了 revokeObjectURL(),但是浏览器内存还是没有变少。

请问应该怎么做才能正确释放内存?

807 次点击
所在节点    问与答
4 条回复
dcsuibian
2021-11-19 12:18:21 +08:00
好像是 URL.revokeObjectURL(this.src); ???
cmdOptionKana
2021-11-19 12:28:49 +08:00
我猜不是实时释放的,你可以等一段时间再看看内存。(另外,你的 objectURL 占的内存如果比较少,也可能不容易判断是否已经释放)
dcsuibian
2021-11-19 12:31:16 +08:00
sorry ,没看到已经调用了。
对于 js 这种带垃圾回收的,应该不管它就好了吧?
一般就算有触发垃圾回收的函数,也不过就是“建议”回收吧
creanme
2021-11-19 13:56:05 +08:00
我做的是使用 pdf.js 渲染 pdf 文件,从接口读文件流(有权限需求,不能把文件放在服务器上任用户读),使用到了 createObjectURL 这个 api ,然后测试和我说有用户遇到了页面崩溃,内存溢出的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/816502

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX