【问题标题】:Caching of displayed images in Silverlight/Windows Phone app在 Silverlight/Windows Phone 应用程序中缓存显示的图像
【发布时间】:2013-10-13 06:52:33
【问题描述】:

我的应用程序显示了一个列表(准确地说是LongListSelector),其中包含文本和Images。对于图像,我目前将Source 属性绑定到模型类提供的HTTP URL,它可以正常工作。但是,我现在问自己,这种策略在数据传输方面是否普遍可取:

  1. 框架是否对下载的图像进行任何缓存?
  2. 如果是这样,缓存的范围如何? (应用的运行时间,甚至更长?)
  3. 如果没有,是否有任何现有机制、模式或建议,说明在这种情况下如何执行缓存?

【问题讨论】:

  • This MSDN page 提供了有关 Silverlight 中图像缓存的一些信息。关于图片缓存的 SO 也有一些问题,尤其是关于如何防止它。

标签: silverlight windows-phone-7 xaml windows-phone-8 windows-phone


【解决方案1】:
  1. 框架只在内存中进行缓存,所以应用重启后缓存会被清除
  2. 仅运行时

  3. 我为您找到了解决方案。它是JetImageLoader,我为应用程序创建了它,我们需要在其中加载、缓存和显示大量徽标、图标等。

它可以用作绑定转换器,所以你甚至不应该改变你的代码!只需更新您的 XAML!

请查看samples in repository,您会喜欢的;)

特点:

  • 在磁盘上缓存
  • 内存缓存
  • 完全异步
  • 可用作绑定转换器或以编程方式从您的代码中获得
  • 完全开源,fork 和改进它!

示例如下:

<Image Source="{Binding ImageUrl, Converter={StaticResource MyAppJetImageLoaderConverter}}"/>

附:很抱歉,我从另一个问题中复制了我的答案,但是 Windows Phone 上的图像缓存是个大问题,我想分享我的解决方案,以便每个人都可以使用它并为开发者社区改进

【讨论】:

  • 哇,这听起来很有希望!我还没有解决我的应用程序中的缓存问题,所以这非常方便。我会告诉你我的经历。
  • 很高兴听到,享受 ;)
  • 工作就像一个魅力,我甚至花了不到十分钟的时间来整合。干得好,谢谢!
  • 感谢您的反馈,如果您想改进它,请给我发电子邮件或在 github repo 上创建问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多