我正在为网站编写高级图像上传功能。为了允许在浪费时间以及将图像上传到服务器的客户端和服务器资源之前执行所有图像配置,我尝试使用HTML 5功能来支持完全客户端功能集,并在所有图像裁剪后进行批量上传和其他编辑已经完成。
我的页面上有一个放置区域,允许多个文件拖放实际选择要编辑的图像。在下拉,我创建了一个图像编辑器列表(使用window.URL.createObjectURL
),一些表单字段,简单的元数据提取预览,我将Jcrop附加到每个图像。我遇到的问题是当我附上Jcrop时。尽管在我通过调用window.URL.revokeObjectURL
撤销网址之前我附加了裁剪设施,Jcrop似乎似乎没有尝试访问URL,直到太晚,我最终丢失图像。
我根本没有调用revokeObjectURL,并且允许一切正常工作......但是我不确定不撤销对资源使用的影响是什么。这是否有可能导致内存泄漏?刷新页面是否会导致未发布的对象URL被释放并且其资源被回收?
假设此处实现的拖放功能仅获取指向本地文件的指针,则不是撤销URL不是问题。
另一方面,如果创建了图像的blob,则在未撤销URL的情况下会考虑内存。