V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
creanme
V2EX  ›  问与答

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

  •  
  •   creanme · 2021-11-19 11:55:33 +08:00 · 905 次点击
    这是一个创建于 1104 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    4 条回复    2021-11-19 13:56:05 +08:00
    dcsuibian
        1
    dcsuibian  
       2021-11-19 12:18:21 +08:00
    好像是 URL.revokeObjectURL(this.src); ???
    cmdOptionKana
        2
    cmdOptionKana  
       2021-11-19 12:28:49 +08:00
    我猜不是实时释放的,你可以等一段时间再看看内存。(另外,你的 objectURL 占的内存如果比较少,也可能不容易判断是否已经释放)
    dcsuibian
        3
    dcsuibian  
       2021-11-19 12:31:16 +08:00
    sorry ,没看到已经调用了。
    对于 js 这种带垃圾回收的,应该不管它就好了吧?
    一般就算有触发垃圾回收的函数,也不过就是“建议”回收吧
    creanme
        4
    creanme  
    OP
       2021-11-19 13:56:05 +08:00
    我做的是使用 pdf.js 渲染 pdf 文件,从接口读文件流(有权限需求,不能把文件放在服务器上任用户读),使用到了 createObjectURL 这个 api ,然后测试和我说有用户遇到了页面崩溃,内存溢出的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3110 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 14:31 · PVG 22:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.