- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 blob 下载文件,问题是我想在下载文件后保留对象 URL,而不对代码库进行重大更改。
所以选项之一是不调用 URL.revokeObjectURL();
依靠浏览器的垃圾收集器来避免任何内存泄漏是否安全?
我是否总是需要显式调用 URL.revokeObjectURL();
?
最佳答案
另一个答案是正确的,但我想为了完整起见我应该添加一些信息。
主要看你传给createObjectURL
的是什么.
如果您传递用户从 <input type=file>
中选择的文件,然后您创建的 blobURI 是指向用户磁盘上文件的直接指针,除了这个映射 URI-file_path 之外什么都保存在内存中。因此,在这种情况下,您可以创建大量此类内容而无需撤销它,没有真正的风险。
如果您传递一个您生成的(或已获取的)Blob(或文件),则该 Blob 必须存储在内存中,并且 blobURI 确实会一直是指向该 Blob 的指针及其数据,保护它不受 GC 的影响,直到文档消失。在这种情况下,不要忘记在不再需要它时将其撤销。
如果您传递来自用户设备的 MediaStream,不要,它已被弃用并且有充分的理由:至于生成的 Blob,UA 必须保持与外部设备在 blobURI 处于事件状态时打开,即使 MediaStream 已关闭,连接仍可能打开并导致无法请求新连接。
关于javascript - 我总是需要显式调用 URL.revokeObjectURL() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49209756/
我正在为网站编写高级图片上传功能。为了在浪费时间和客户端和服务器资源将图像上传到服务器之前允许执行所有图像配置,我尝试使用 HTML 5 功能来支持在所有图像裁剪后批量上传的完全客户端功能集并进行了其
我有一个网络应用程序。它在 Google Chrome 中运行,不需要在任何其他浏览器中运行。 我有在服务器上生成并在 AJAX 请求中发送回客户端的 PDF 数据。 我从 PDF 数据创建了一个 b
我正在使用 blob 下载文件,问题是我想在下载文件后保留对象 URL,而不对代码库进行重大更改。 所以选项之一是不调用 URL.revokeObjectURL(); 依靠浏览器的垃圾收集器来避免任何
如果我理解正确,URL.createObjectURL 创建一个表示文件或 blob 的 URL。因为 URL 只是一个字符串,所以浏览器无法知道您何时使用完 URL 代表的资源,因此提供了一个 UR
我正在制作一个 html 界面,通过拖放和多选文件在服务器上上传图像。我想在将图片发送到服务器之前显示这些图片。所以我首先尝试使用 FileReader 但我遇到了一些问题,例如 this post
-----更新------ 我注释掉了 window.URL.revokeObjectURL( imgSrc ); 现在调用在所有浏览器中都有效。似乎该网址在 Chrome 中被撤销得太早了。我仍然很
我是一名优秀的程序员,十分优秀!