撤销“revokeObjectURL”的最佳实践是什么?调用它真的有必要吗?

9

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

我的页面上有一个拖放区域,允许多个文件拖放来选择要编辑的图像。在拖放时,我创建了一个图像编辑器列表(使用window.URL.createObjectURL),其中包含一些表单字段、简单的元数据提取预览,并为每个图像附加了Jcrop。我遇到的问题是当我附加Jcrop时。尽管我在撤销URL之前(使用调用window.URL.revokeObjectURL)附加了裁剪设施,但Jcrop似乎直到太晚才尝试访问URL,导致我丢失了一些图像。

我已经不再调用revokeObjectURL,这样可以使一切正常运行......但是我不确定不撤销会对资源使用产生什么影响。这是否允许出现内存泄漏的可能性?刷新页面是否会释放未撤销的对象URL并回收它们的资源?

1个回答

0

假设这里实现的拖放功能只获取本地文件的指针,那么不撤销URL并不是什么大问题。

另一方面,如果创建了图像的blob,则需要考虑内存是否被占用,如果不撤销URL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接