【问题标题】:Performance issue in downloading the images on iPhone from the server从服务器下载 iPhone 上的图像时的性能问题
【发布时间】:2014-02-05 14:59:05
【问题描述】:

我们在 iPhone 上有一个应用程序。此应用程序每页/屏幕显示 25 个产品。首先从服务器下载所有25个产品的产品名称、价格、折扣、产品图片的URL等文本项。

之后,我们发出 25 个同步请求来下载 25 个产品图像,一个接一个。每个图像大小约为 25KB,大小约为 300 x 400 像素,我们只需要 72 x 72 像素大小的图像即可在 iPhone 上显示。我们注意到显示一个屏幕/页面大约需要 40 秒,这种性能并不好。所以我们正在研究如何提高性能。

  1. 如果我们将服务器上的图像尺寸缩小到 72 x 72 像素,性能是否会提高。
  2. 也可以将所有 25 张图片从服务器下载到 iPhone 上吗?如果是这样,你能分享你的方法吗?只有当它可以提高性能时,我们才会这样做。

【问题讨论】:

    标签: iphone performance image download


    【解决方案1】:

    1.如果您将它们调整为 72x72,那么您将拥有更小的总下载尺寸,因此下载速度更快。

    2.对于批处理我没有解决方案,但您可以尝试为每个文件发出异步请求。下载时放一个临时图像(徽标或其他东西)。下载图像时,将临时图像替换为新图像。 您可以将图像放在缓存中,以免每次都下载它们。

    对于异步下载,您可以使用ASIHTTPRequest(它也有一个缓存类)。

    如果您执行同步请求,那么您的 GUI 将冻结直到它们完成。

    【讨论】:

    • 这很好。我们在一个请求中异步下载的性能会显着提高吗?你有什么想法?
    • ASIHTTPRequest 无法进行批量下载(对于您需要发出下载请求的每个文件)。它有一个队列,它添加下载请求并处理它们(如果我没记错的话,你可以设置一次处理的最大请求数)。如果您调整图像大小并异步下载它们,您的应用会表现得更好。
    【解决方案2】:

    首先,在服务器上缩放图像是完全不费吹灰之力的 - 无需再下载任何绝对必须下载的数据。

    完成此操作后,您会看到显着的性能提升,您可以通过使用占位符图像并在后台异步下载真实图像来进一步提高性能。 (ASIHTTPRequest 库是此类功能的一个很好的包装器。)

    最后,如果合适,您应该使用图像缓存并将图像存储在本地(可能在 SQLite 数据库中使用引用)。但是,您需要偶尔对此进行维护,以使其保持在合理的文件大小限制内。

    【讨论】:

      【解决方案3】:

      **您可以使用 sdwebimage 框架从 ios 中的服务器下载图像 ** **您可以使用此链接**

      go to this link

      download frame and get information , how to use it.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-06
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        相关资源
        最近更新 更多