2

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

  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 中为 false

  4. 使用标头禁用缓存

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

但所有这些都没有帮助。还有其他问题而不是缓存问题吗?当我们在查看图片时单击下一个按钮时,想知道 facebook 如何如此快速地从服务器加载图像(没有重复)。

4

1 回答 1

3

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

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

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

于 2013-10-16T05:22:30.670 回答