使用RAP将图像绘制到画布中,这是在客户端使用 HTML5 画布标签完成的,效果很好。
假设您使用 Eclipse,在服务器端生成的图像可以在<YOUR WORKSPACE>\.metadata\.plugins\org.eclipse.rap.tools.launch\<YOUR LAUNCH CONFIG>\.metadata\.plugins\org.eclipse.rap.ui\context\rwt-resources\generated
.
但是所有这些图像也都缓存在客户端的磁盘上。这些可以使用存储的十六进制转储轻松恢复。但是出于安全限制,这些不能被缓存,只能缓存在内存中。
所以我:
- 编辑了无意义的 index.html,因为我不想要这个文件,但传输的图像不被缓存
- 尝试编辑 GET 标头,但事实证明 GET 已正确修改
- 试图编辑 POST 标头,但事实证明,根据定义 POST 不会缓存任何内容,只要它没有明确定义,这里不是这种情况
- 参看。RFC:2616 Section:9.5 Topic:POST
- 检查问题是否与画布标签本身有关(就像在这个SO 线程中假设的toBlob一样)
- 检查这是否与 HTML5 的应用程序缓存有关
但我在 RAP 客户端中没有发现任何与该问题相关的特定对象的 HTML5 文档中的任何内容。所以我的问题是,如果你有任何想法,我可以如何改变使用 HTML5 画布对象缓存图像的行为。
更新#1
是的 ralfstx,GC.drawImage(Image)
用于将图像绘制到画布上。请看下面的截图。这是您在绘制图像并访问浏览器缓存时将看到的内容。我们只需通过关闭服务器来确保无法访问映像的服务器地址。
如果您想查看在此会话中实际绘制的图像,请复制此 pastebin 片段中的所有(CTRL+A 和RAW Paste Data中的光标)内容并将它们粘贴到此处。
更新#2
相应增强请求的进度