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

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

我采取了完全不调用revokeObjectURL的方式,这使所有内容都可以工作...但是我不确定不撤销对资源使用的影响。这样是否存在潜在的内存泄漏?刷新页面是否导致未撤销的对象URL被释放并回收其资源?

最佳答案

假设此处实现的拖放功能仅获取指向本地文件的指针,不撤消URL就不成问题了。

另一方面,如果创建了图像的 Blob ,那么在不撤消URL的情况下,一定要考虑使用内存。

关于html - revokeObjectURL的最佳实践是什么,是否真的有必要进行调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19871991/

10-12 00:09
查看更多