2013-08-07 62 views
0

我目前正在开发一个应用程序,它将浏览(以及更多的东西,但这不相关)youtube列表。现在每当我看到一个视频时,我都会显示相应的图像并以列表视图(或者gridview,再次不相关)显示它。现在,这里是两难选择:一个更好本地存储的图像被下载后,还是我们每一次下载它们,我们希望他们表现出,即:
this._image = new BitmapImage(new Uri("http://domain.com/content/someImage.jpg"));关于图像存储的建议

+0

显著的影响是什么保持的原因图片?你能不能保存路径并从该路径渲染图像? – Pluc

+0

原因是重新启动应用程序后,图像将再次下载,并且列表可能有100-200个视频,并且您可以有多个列表。每次下载所有这些图像都会带宽很大。 –

+0

Ops,我显然不是在“asp.net-mvc”标记过滤器:) – Pluc

回答

1

你可能会想看看有什么YouTube必须就此事发表评论;我确信它在开发人员API文档中有关于此的一些注意事项,以说明它们的首选方法。

这就是说,把这当成一般意见;当你经常查询另一个系统时,你通常想限制你很烦人。现在,YouTube当然不会注意到一个应用程序的负载,但它仍然是一个好习惯。一般来说,我宁愿分割差异:根据视频ID缓存图像并保留X小时,因此如果用户在搜索中拉起相同的视频20次,则您没有请求缩略图20次好。

这样,您可以通过每天或每两天更新图像来保持结果的相关性(假设他们再次搜索了视频)。

编辑:对,应用程序。移动。带宽。 Godawful数据上限。我的建议是更重要的,然后你可能想让它缓存几天是安全的,但一次有多少视频缩略图的硬帽,所以你不是应用程序占用100MB某人的8GB手机上的空间。

如果你想成为超级用户友好型的用户,可以在某处设置一些东西,让人们改变每次查询的方式或者缓存特定的时间。

0

这实际上取决于您的使用模式。正确的术语是'本地缓存'图像'或'每次你想要显示图像时从服务器获取'。如果用户体验的优先级高于显示YouTube视频的最新图像快照(对于相同视频很可能不会更改) - 那么将在本地缓存图像,并且有效期为。这将有助于获得更快的用户体验并节省一些网络带宽。使用过期缓存可以确保您没有在设备上记忆太多不必要的图像,而且随着图像变旧,它们的相关性将会降低,并且您可以取回新的图像。

缓存策略(你确定当图像具有很高的重要性,以及如何长期应该保持没有办法的办法)将是一个有趣的问题,并能对用户体验