我有一个显示来自绑定的uri(即www.website.com/picture1.jpg)的图像的功能。在wP7中停止图像缓存
我发现,现在明白手机会缓存下载的图像。我读到它仅适用于应用程序运行的生命,但即使关闭应用程序并重新进入应用程序,缓存中的相同图像也会出现。 有没有办法阻止这个缓存发生在这个特定的页面?
编辑:图像定期更新,但仍具有相同的名称,因此无需缓存。以安全摄像头为例。
非常感谢。
我有一个显示来自绑定的uri(即www.website.com/picture1.jpg)的图像的功能。在wP7中停止图像缓存
我发现,现在明白手机会缓存下载的图像。我读到它仅适用于应用程序运行的生命,但即使关闭应用程序并重新进入应用程序,缓存中的相同图像也会出现。 有没有办法阻止这个缓存发生在这个特定的页面?
编辑:图像定期更新,但仍具有相同的名称,因此无需缓存。以安全摄像头为例。
非常感谢。
,除非你添加一个随机的查询字符串的图像URI每个有没有办法解决它GET即
var imageUrl = "www.website.com/picture1.jpg";
var imageUri = new Uri(String.Format("{0}?{1}", imageUrl, Guid.NewGuid()));
缓存是有点过于激进 - 如果做一个GET到相同的URI上任何HTTP请求应用程序生命周期 - 即使内容每次都改变 - 手机将缓存它。当我试图与JSON-RPC网络服务进行交谈时,它让我感到困惑了几个小时......
当然,一般情况下您会希望图像被缓存 - 但是如果您确定图像将经常改变,然后上述将工作。
向URL添加一个唯一的查询字符串参数。 (例如,DateTime.Now
)
或GUID ........ – 2011-02-13 04:36:03
缓存是一件好事,在你的情况下,它可以节省下载图像的成本,如果图像没有改变,为什么你需要重新下载它?
如果您的图片已被更改,并且您想强制再次下载,您可以在url上生成唯一的ID。
但想一想,为什么?
嗨,重点是图像每隔几分钟就会改变一次。 – 2011-02-13 12:22:47
取决于您是否拥有对网站及其内容的控制权;不应该通过设置HTTP响应头来处理这个问题吗? 我会假设平台尊重标题(未验证)。
否则上面发布的随机字符串技巧将工作。
有CreateOptions财产上BitmapImage(如果要加载代码),它可以让你指定BitmapCreateOptions,其中之一是IgnoreImageCache:不使用现有的图像缓存加载图像。只有当缓存中的图像需要刷新时才应选择此选项。
我没有试过它,但它听起来像是你正在寻找的东西......如果你确实尝试过,我会对结果感兴趣。
谢谢。我不知道如何在我的情景中做到这一点,但我会希望工作。 我仍然有一些从昨天存储的图像,但只是一些。我无法解决它。 我甚至断开了手机与任何网络连接,它从昨天抓取了一些图像(尽管我已经删除并重新安装了该应用程序!) – 2011-02-13 15:52:39
听起来就像你在做一些缓存的防火墙/代理一样好吧。从手机中删除应用程序将擦除与该应用程序有关的所有内容,包括所有缓存的数据。 Uri上的随机查询字符串(大多数情况下)也会绕过代理缓存,因此它可能会解决所有问题。 – Tyler 2011-02-13 19:53:54