从网络请求加载多个图像时,我应该返回图像数据还是图像链接?

时间:2013-07-05 01:05:51

标签: php mysql ios objective-c

我有一个iOS应用程序,它在表格视图中列出了本地位置。每个单元格都有图片,文本和子文本。 每个单元格的详细视图还具有相关位置的多个图片,以及相当数量的文本。 JSON是交换格式。

目前我正在发送位blob并将其构建为一个jpeg,一旦加载到设备,但我担心这在设备和服务器上都很密集。所以我正在考虑发送一个链接到图片并异步下载每张图片,但我不知道这会产生什么影响。特别是考虑到我目前正在为后端使用廉价的PHP / MySQL共享主机方案。

我正在寻找通过JSON发送原始图像数据与该图像链接的优缺点列表。欢迎使用任何其他选项快速有效地使用多个网络图像填充视图。

2 个答案:

答案 0 :(得分:1)

我认为差异如下:

1-用户将下载:(link + image> image)更多数据流。

2-如果图像在另一台服务器上 - >可能比您的服务器慢或更快 - >影响为用户提供的图像加载速度,并最大限度地减少服务器和客户端之间传输的数据大小。

3-如果图像在另一台服务器上 - >你保证在你的网站启动时它会在那里吗?

使用ajax加载数据已经是一种异步方法,如果使用它,则不必担心其他服务器。好吧,除非你的服务器和地狱一样慢,否则你应该考虑使用另一台服务器来处理大图像,因为同步不是你主要担心的问题,因为它是你应用于服务器的负载。

如果我想到其他问题,我会在这里张贴它们。

答案 1 :(得分:0)

我对此进行了一些研究,并向几位同事询问,所以我将分享我提出的花絮。

在某些时候,必须发送原始图像数据 - 这是不可避免的。 但我可以从懒惰加载图像数据中受益 - 因此,如果我的用户只查看14个tableview单元格,我只花时间加载14个图像,而不是从服务器返回多个总结果(如果我实现正确的缓存,则更少) )。

到目前为止,我的解决方案是返回30(我一次加载的tableview单元格数)JSON对象,每个对象都有一个"Image_URL":"..."字段并将它们放入字典中。然后,在cellForRowAtIndexPath:中,我检查该单元的图像是否已经缓存,如果没有,我会对该图片发出请求并更新网络回调中的cell.image

这非常简单,但SDWebImage似乎是一个非常好的库,用于处理基本案例,缓存和基本实现中未涉及的其他内容。我应该注意AFNetworking还包括异步图像下载的功能。