6

我编写了一个指令,允许用户上传照片然后显示它们。然后,用户可以单击其中一个显示的图像并使用 Jcrop 对其进行裁剪。用户完成图像裁剪后,信息被发送到服务器,被解析,然后图像被裁剪并放回数据库中。这个新的裁剪图像具有与以前相同的参考;原始图像被覆盖。这一切都在 Spring 服务器上完成。我需要弄清楚如何让图像刷新并显示新的裁剪图像。主要问题是图像和请求(我认为)都被缓存了。我对 Angular 还很陌生,对缓存工厂过程不太了解。

4

1 回答 1

15

您可以向图像 URL 添加随机参数 - 这将防止在大多数浏览器中进行缓存。这种技术称为缓存清除。每次图像更改时,您都必须更改此参数的值才能使其正常工作。

更新

将时间戳保存在某个变量中,并仅在图像更改时更改它。

例如。这将调用getTimeStamp()将生成当前时间戳并充当缓存破坏器的函数。

<img data-ng-src='api/image/{{image.id}}?{{getTimeStamp()}}' data-ng-click='editImage($index);'/> 
于 2013-10-02T16:56:52.673 回答