我正在为网站编写高级图片上传功能。为了在浪费时间和客户端和服务器资源将图像上传到服务器之前允许执行所有图像配置,我尝试使用 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/