我必须创建一个简单的图像编辑器来执行翻转,翻转,添加边框等操作。使用jsp servlets。每当执行操作时, POST ajax请求将以数据 - 映像服务器相对路径和操作名称发送到服务器。我使用ImageMagick执行操作 - 质量问题。一旦完成更改(直到那时使用ajaxloader),响应将被发送回视图。一切操作完成后,一切正常,直到用户点击操作。旧图像 - 再次显示先前的图像编辑操作,并在一段时间后反映更改。我用Google搜索并得出结论,这是由于缓存。我尝试了所有可能的事情 -
使用时间戳
附加图像的服务器相对路径的路径http://172.16.3.72:8080/~user/dataDir/workspace/2/tempData/ResizeImage.jpeg?random=1381852940376
使用时间戳
附加了ajax的urlhttp://172.16.3.72:8080/cdl/captureImage.htm?pageNumber=2&isbn=AndItWorksFinally2?random=.332223223
在jquery中使用了cache:false
使用标头禁用缓存
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1);
但所有这些都没有帮助。还有别的东西而不是缓存问题吗? 我们想知道当我们在查看图片的同时点击下一个按钮时,facebook如何快速加载来自服务器的图像(没有重复)。
答案 0 :(得分:3)
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", -1);
而不是在jquery中使用它,尝试在请求的页面上传递标题。
并尝试在请求的页面上使用唯一的图像名称。通常浏览器显示先前从缓存中渲染的图像。