标签: revokeobjecturl

revokeObjectURL的最佳做法是什么,并且调用它真的有必要吗?

我正在为网站编写高级图像上传功能.为了允许在浪费时间以及将图像上传到服务器的客户端和服务器资源之前执行所有图像配置,我尝试使用HTML 5功能来支持完全客户端功能集,并在所有图像裁剪后进行批量上传和其他编辑已经完成.

我的页面上有一个放置区域,允许多个文件拖放实际选择要编辑的图像.在下拉,我创建一个图像编辑器列表(使用window.URL.createObjectURL),一些表单字段,简单的元数据提取预览,我将Jcrop附加到每个图像.我遇到的问题是当我附上Jcrop时.尽管在我通过调用来撤销url之前我附加了裁剪设备window.URL.revokeObjectURL,Jcrop似乎似乎没有尝试访问URL,直到太晚,我最终丢失了图像.

我根本没有调用revokeObjectURL,并且允许一切正常工作......但是我不确定不撤销对资源使用的影响是什么.这是否有可能导致内存泄漏?刷新页面是否会导致未发布的对象URL被释放并且其资源被回收?

html5 revokeobjecturl

8
推荐指数
1
解决办法
511
查看次数

将文件写入客户端磁盘时从 blob 创建/对象 URL 中释放内存

更新

由于提出了下面的问题并在发现代码中的错误后得出了一个更基本的问题,我发现了更多信息,例如在 MDN Web 文档中的下载 API 方法 downloads.download() 中,它指出对象的撤销url 仅应在文件/url 下载后执行。因此,我花了一些时间试图了解 Web 扩展是否使下载 API onChanged 事件对网页的 javascript“可用”,但我认为不会。我不明白为什么下载 API 仅适用于扩展程序,特别是当存在很多与内存使用/对象 url 撤销问题有关的问题时。例如,等待用户完成 JavaScript 中的 blob 下载

如果你知道的话请解释一下吗?谢谢。


从关闭的 Firefox 浏览器开始,右键单击要在 Firefox 中打开的本地 html 文件,它将打开并显示五个 firefox.exe 进程,如 Windows 任务管理器中所示。其中四个进程的启动内存介于 20,000k 到 25,000k 之间,一个进程的内存约为 115,000k。

此 html 页面有一个 indexedDB 数据库,其中有 50 个对象存储,每个存储包含 50 个对象。每个对象都从其对象存储中提取并使用 JSON.stringify 转换为字符串,然后写入二维数组。然后,数组的所有元素被连接成一个大字符串,转换为一个 blob,并通过 URL 对象写入硬盘,该对象随后立即被撤销。最终文件大约190MB。

如果代码在转换为 blob 之前停止,则 firefox.exe 进程之一的内存使用量会增加到大约 425,000k,然后在数组元素连接成一个数组后大约 5-10 秒内回落到 25,000k。单字符串。

如果代码运行完成,同一 firefox.exe 进程的内存使用量将增长到大约 1,000,000k,然后下降到大约 225,000k。以 115,000k 启动的 firefox.exe 进程也在代码的 blob 阶段增加到约 …

javascript memory-leaks blob revokeobjecturl

3
推荐指数
1
解决办法
7858
查看次数

Blob createObjectURL 下载在 Chrome 中不起作用

下面的代码在 Chrome 中显示“文件未找到”错误,但相同的代码适用于 Chrome 中的其他一些环境,并且在添加一些时间延迟后它可以正常工作。
请告知我当地环境中所需时间延迟的原因。

var a = document.createElement('a');
a.style = "display: none";  
var blob = new Blob(data, {type: "application/octet-stream"});
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);     
Run Code Online (Sandbox Code Playgroud)

javascript revokeobjecturl

3
推荐指数
1
解决办法
5477
查看次数

标签 统计

revokeobjecturl ×3

javascript ×2

blob ×1

html5 ×1

memory-leaks ×1