creanme
V2EX  ›  问与答

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

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

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

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

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