我们在iPhone上有一个应用程序。此应用程序每页/屏幕显示25个产品。所有25个产品的产品名称,价格,折扣,产品图片的URL等文本项目首先从服务器下载。
之后,我们发出25个同步请求,一个接一个地下载25个产品图像。每张图片的大小约为25KB,大小约为300×400像素,我们只需要72 x 72像素大小的图像,以便在iPhone上显示。我们注意到显示一个屏幕/页面大约需要40秒,而这种性能并不好。所以我们正在研究如何提高性能。
答案 0 :(得分:2)
1.如果您将它们调整为72x72,那么您的总体尺寸会更小,因此速度更快。
2.对于批处理我没有解决方案,但您可以尝试为每个文件发出异步请求。下载时放一个临时图像(徽标或东西)。下载图像时,用新图像替换临时图像。 您可以将图像放在缓存中,以免每次都下载它们。
对于异步下载,您可以使用ASIHTTPRequest(它还有一个缓存类)。
如果您执行同步请求,那么您的GUI将冻结,直到完成。
答案 1 :(得分:0)
首先,在服务器上缩放图像是完全没必要的 - 不需要再下载任何你必须拥有的数据。
完成后,您会看到明显的性能提升,您可以通过使用占位符图像并在后台异步下载真实图像来进一步提高性能。 (ASIHTTPRequest库是这种功能的一个很好的包装器。)
最后,如果合适,您应该使用图像缓存并在本地存储图像(可能在SQLite数据库中使用引用)。但是,您需要偶尔对此进行维护,以使其保持在合理的文件大小限制内。
答案 2 :(得分:0)
**您可以使用sdwebimage框架从ios中的服务器下载图像** **您可以使用此链接**