creanme
V2EX  ›  问与答

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

  •  
  •   creanme · Nov 19, 2021 · 1325 views
    This topic created in 1667 days ago, the information mentioned may be changed or developed.

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

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

    4 replies    2021-11-19 13:56:05 +08:00
    dcsuibian
        1
    dcsuibian  
       Nov 19, 2021
    好像是 URL.revokeObjectURL(this.src); ???
    QingXuJiaZhi
        2
    QingXuJiaZhi  
       Nov 19, 2021
    我猜不是实时释放的,你可以等一段时间再看看内存。(另外,你的 objectURL 占的内存如果比较少,也可能不容易判断是否已经释放)
    dcsuibian
        3
    dcsuibian  
       Nov 19, 2021
    sorry ,没看到已经调用了。
    对于 js 这种带垃圾回收的,应该不管它就好了吧?
    一般就算有触发垃圾回收的函数,也不过就是“建议”回收吧
    creanme
        4
    creanme  
    OP
       Nov 19, 2021
    我做的是使用 pdf.js 渲染 pdf 文件,从接口读文件流(有权限需求,不能把文件放在服务器上任用户读),使用到了 createObjectURL 这个 api ,然后测试和我说有用户遇到了页面崩溃,内存溢出的问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2685 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 02:20 · PVG 10:20 · LAX 19:20 · JFK 22:20
    ♥ Do have faith in what you're doing.