You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Object URL缓存及URL.revokeObjectURL上下文绑定的技术问询

关于Object URL的两个问题

1. Object URL是否被缓存?

在同一上下文测试发现,调用URL.revokeObjectURL()后Object URL仍可访问。

(async () => {
  const str =
`export class Hi {
  static log() {
    console.log('Hello there!');
  }
}`;

  const blob = new Blob([str], {type: 'text/javascript'});
  const url = URL.createObjectURL(blob);
  console.log(blob);  // Blob { size: 73, type: "text/javascript" }
  console.log(url);   // blob:null/92bfa492-...

  const {Hi} = await import(url);
  console.log(Hi);    // class Hi {}
  Hi.log();           // Hello there!

  URL.revokeObjectURL(url);

  // test after delay
  for (let i = 1; i < 4; i++) {
    const n = 10*i;
    setTimeout(async () => {
      console.log(`After ${n} seconds`);
      const obj = await import(url);
      console.log(Hi);    // class Hi {}
      Hi.log();           // Hello there!
    }, n*1000);
  }

})();

2. URL.revokeObjectURL()是否与上下文绑定?

在后台脚本(或动作弹窗脚本)中创建并传递给内容脚本的Object URL,能否在内容脚本中被撤销?


更新

相关参考:

  • 是否必须显式调用URL.revokeObjectURL()?
  • URL.createObjectURL会导致内存泄漏?
  • window.URL.revokeObjectURL()无法立即(或完全)释放内存?
  • 加载图片后调用revokeObjectURL?

内容的提问来源于stack exchange,提问作者erosman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:04:55