繁体   English   中英

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

[英]When loading multiple images from network requests, should I return the image data or a link to the image?

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

目前,我正在发送位Blob,并将其一旦加载到设备中便构建为jpeg,但是我担心这在设备和服务器上都很费劲。 因此,我正在考虑发送指向该图片的链接并异步下载每张图片,但是我不知道这样做会有什么影响。 特别是考虑到我目前正在为后端使用便宜的PHP / MySQL共享托管计划。

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

我认为区别如下:

1-用户将下载:(链接+图像>图像)更多数据流。

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

3-如果图像在另一台服务器上->您是否保证当您的网站启动时该图像就会在该服务器上?

4-使用ajax加载数据已经是一种异步方法,如果您使用它,则不必担心其他服务器。 好吧,除非您的服务器运行得如此之慢,否则您应该考虑使用另一台服务器来处理大映像,因为同步并不是您主要担心的问题,因为这是您要施加到服务器上的负载。

如果有其他问题,我将在这里发布。

我对此进行了一些研究,并询问了一些同事,所以我将分享我的想法。

在某些时候,必须发送原始图像数据,这是不可避免的。 但是我可以从延迟加载图像数据中受益-因此,如果我的用户仅浏览14个表格单元格,则仅花费时间加载14个图像,而不是从服务器返回许多总结果(如果实现适当的缓存则更少)。

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

这很容易完成,但是SDWebImage似乎是一个很好的库,用于处理极端情况,缓存以及其他基本实现中未涵盖的其他内容。 我应该注意, AFNetworking还包含用于异步图像下载的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM