ModelView中未反映的图像数据更改

时间:2013-10-15 16:35:15

标签: javascript jsp caching servlets

我必须创建一个简单的图像编辑器来执行翻转,翻转,添加边框等操作。使用jsp servlets。每当执行操作时, POST ajax请求将以数据 - 映像服务器相对路径和操作名称发送到服务器。我使用ImageMagick执行操作 - 质量问题。一旦完成更改(直到那时使用ajaxloader),响应将被发送回视图。一切操作完成后,一切正常,直到用户点击操作。旧图像 - 再次显示先前的图像编辑操作,并在一段时间后反映更改。我用Google搜索并得出结论,这是由于缓存。我尝试了所有可能的事情 -

  1. 使用时间戳

    附加图像的服务器相对路径的路径
    http://172.16.3.72:8080/~user/dataDir/workspace/2/tempData/ResizeImage.jpeg?random=1381852940376
  2. 使用时间戳

    附加了ajax的url
    http://172.16.3.72:8080/cdl/captureImage.htm?pageNumber=2&isbn=AndItWorksFinally2?random=.332223223
  3. 在jquery中使用了cache:false

  4. 使用标头禁用缓存

    response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
    response.setHeader("Pragma", "no-cache");
    response.setDateHeader("Expires", -1);
  5. 但所有这些都没有帮助。还有别的东西而不是缓存问题吗? 我们想知道当我们在查看图片的同时点击下一个按钮时,facebook如何快速加载来自服务器的图像(没有重复)。

1 个答案:

答案 0 :(得分:3)

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1);

而不是在jquery中使用它,尝试在请求的页面上传递标题。

并尝试在请求的页面上使用唯一的图像名称。通常浏览器显示先前从缓存中渲染的图像。