JavaScript Blob 对象何时被垃圾回收?

2024-04-24

在现代浏览器中,可以将大对象分配为Blob,然后通过 URL 请求访问它。此 URL 将在浏览器的其他位置提供存储的对象(例如图像的数据)。

浏览器如何知道何时不再需要这个 URL,以及相应的Blob数据可以免费被垃圾收集吗?


浏览器最终将清除该资源,但是可能需要一段时间(几小时或几天)才能将其从内存/磁盘中删除。

如果您希望显式删除该对象,可以通过revokeObjectURL.

var blob = new Blob([/*JPEG data*/], {type: "image/jpeg"}),
    url = (window.URL || window.webkitURL),
    objectUrl = url.createObjectURL(blob);

// use the object URL, eg:
var img = new Image();

img.onload = function()
{
    // release the object URL once the image has loaded
    url.revokeObjectURL(objectURL);
};

// trigger the image to load
image.src = objectURL;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript Blob 对象何时被垃圾回收? 的相关文章

随机推荐

  • Tomcat日志格式禁用IPv6格式

    以下是三个日志示例 127 0 0 1 17 Sep 2010 14 03 07 0800 GET docs logging html HTTP 1 1 200 24040 http localhost 8000 docs manager
  • 重写标准库使用的内存分配方法? [复制]

    这个问题在这里已经有答案了 是否可以覆盖 STL 分配 管理和释放内存的方式 如果可能的话 人们会怎样做呢 有没有一种方法可以将处理原始内存的代码保留在一个类或文件中 我想对我的整个程序执行此操作 以便我可以跟踪内存使用情况 时间和生命周期
  • Spring JPA 存储库接口和默认方法用例

    我目前想知道是否可以通过使用 JPA 存储库内的默认接口方法来优雅地解决特定用例 假设我们有以下实体和支持类型 public enum Status STATUS 1 STATUS 2 STATUS 3 Entity Getter from
  • 使用 CMAKE (VISUAL STUDIO) 链接调试和发布库

    已经有一个Thread https stackoverflow com q 2209929 293195这并没有真正帮助 我希望能够链接例如Foo lib for Release配置和Foo d lib for Debug配置 我怎样才能实
  • CSS - 文本阴影大小

    I am trying to get this effect As you see shadow is bigger then text How can I set size of shadow against to text like s
  • React 导入导致无法解析模块说明符“react”

    你可以说我傻 我不会认为这是针对我个人的 但我已经 3 年多没有使用 REACT 了 我的脑细胞肯定已经死了 我收到错误 localhost 1 未捕获类型错误 无法解析模块说明符 react 相对引用必须以 或 开头 我确信这与我在 Ch
  • 用于属性设置器的 Visual Studio DebuggerStepThrough

    我不想禁用 Visual Studio 对所有异常的正常处理 我正在寻找一种方法来忽略特定属性的设置者引发的异常 我知道 DebuggerNonUserCode and DebuggerStepThrough 但它们似乎不适用于属性 或更具
  • Vagrant、共享文件夹:利用 inotify 而非 NFS

    我们的 Symfony2 Web 应用程序在开发模式下使用 Assetic 观察器来动态重新编译资产 Web 应用程序在 Docker 容器中运行 该容器在 Vagrant VM Ubuntu 12 04 Precise 中运行 主机是 O
  • 如何在 Xamarin Forms 的 Microchart 中添加 2 行

    我现在正在使用 Xamarin Forms 并尝试使用 Microchart 我想在一个折线图中显示 2 条线 以便我可以比较它们 但现在我不能在一张图表中同时放入2条线 有什么解决办法吗 非常感谢 你可以使用 hack 独立创建两个图表并
  • 将 C 转换为 MIPS - 嵌套数组

    我正在学习 MIPS 汇编语言 在书中看到了这个例子 对我来说这似乎是不正确的 如果是的话 这将不是我在本书中发现的第一个错误 变量f and g被分配寄存器 s0 and s1分别是数组的基地址A and B are s6 and s7分
  • python中图像的几何扭曲

    我想使用 python 对图像执行几何变换 以沿给定曲线 拉直 或校正图像 似乎 scikit imageProjectiveTransform and warp 对此非常有用 但文档很少 我按照文档进行操作here http scikit
  • 如何在PowerShell中从外部命令输出获取原始二进制数据?

    我在这里读到 当您在 powershell 中运行外部命令时 它们的输出始终被解释为字符串或字符串数 组 https stackoverflow com a 35980675 983442 https stackoverflow com a
  • 弹出窗口,如何在IE8中隐藏地址栏

    当我打开弹出窗口并设置 location 0 或 location no 时 网址栏仍显示在 IE8 中且为只读 怎么能隐藏呢 Thanks 这是不可能的 现代浏览器不允许这样做 这将是一个主要的安全缺陷 也可以看看这个答案 无耻地抄袭了大
  • 将计算出的日期与输入的日期进行比较

    我在单元格 p4 中有日期 2014 01 01 通过公式 O5 1000 60 60 24 DATE 1970 1 1 我在单元格 b5 中有日期 2014 01 01 输入 p4 b5 给出错误 p4 gt b5 给出错误 如何在 Ex
  • 将重叠的日期时间间隔拆分为标识符值内的非重叠间隔

    我对这个问题有一个确切的问题在标识符的值内将重叠间隔拆分为非重叠间隔 https stackoverflow com questions 55836442 split overlapping intervals into non overl
  • 如何将php cURL升级到7.36.0版本?

    我的 CentOS 服务器上有 php curl 7 19 7 但我需要升级到 7 36 0 I tried yum update php curl 但我得到了 Loaded plugins downloadonly fastestmirr
  • OpenCV Java:如何访问 findNonZero() 返回的坐标?

    在我的 Android 应用程序中 我正在使用findNonZero 查找并访问二值图像中的白点 我得到了图像 binMat大小 595 800 作为方法的输入 然后我有 Mat wLocMat Mat zeros binMat size
  • 推送时出现 git 错误 来自服务器的空回复

    我一直在尝试对现有存储库进行新的更改 但是 我不断收到以下错误 MacBook Pro spa git push origin master XX 的用户名 致命密码 无法访问 https github com XXXX https git
  • 如何从python字典中的给定名称获取键

    我有一个变量叫做 anime dict which contains a dictionary of lists of objects as shown below JI2212 Inu Yasha year 1992 rating 3 E
  • JavaScript Blob 对象何时被垃圾回收?

    在现代浏览器中 可以将大对象分配为Blob 然后通过 URL 请求访问它 此 URL 将在浏览器的其他位置提供存储的对象 例如图像的数据 浏览器如何知道何时不再需要这个 URL 以及相应的Blob数据可以免费被垃圾收集吗 浏览器最终将清除该