4

我的应用程序的一部分 大量使用图像处理。使用 ajax 帖子和图像处理服务器端使用多种方法进行裁剪、过滤器等。用户采取的每个操作动作都会创建一个物理图像而不删除原始图像,以便允许“撤消”系统使用户能够将他的图像恢复到任何先前的时间点。

当用户完成会话或关闭浏览器时,所有这些“临时”图像都会通过发布到服务器的方式删除。

对于现代浏览器,我们将使用 html5 扩展图像处理功能。使用画布使我们能够在客户端执行所有这些图像操作,而无需通过编码和动态嵌入 base64 数据来创建额外的静态图像。

我担心的是“撤消”系统。使用静态回退方法,我们存储了一个对象数组,其中包含指向静态图像的链接。这提供了完整的撤消功能。但是,如果我们在所有客户端都这样做,那么这个数组实际上必须包含每个“撤消”点的 base64 数据的副本对于用户正在操作的每个图像(典型的用例可能是 20 个原始图像,每个图像有 4-5 个撤消点)。

在我花了几天时间对此进行原型设计之前,我希望有人可能会对这种方法提出一些意见。这是个好主意吗?馊主意?从浏览器性能和内存使用的角度来看,存储大量 base64 图像数据对象是不是一个坏主意?

欢迎任何想法,在此先感谢。

4

1 回答 1

0

这是个坏主意。Base64 占用的存储空间比实际编码的数据多 30%。如果您的服务器上的图像可以通过实际的 URL 访问,请考虑保留对<img>与 DOM 分离的元素的引用。

于 2012-06-16T09:17:16.430 回答