0

在服务器端,我想下载许多文本和图像。问题是我不想单独获取这些东西,我想将它们打包到一个文件中,以便更容易利用暂停和恢复功能。我应该将它们压缩到服务器端并在移动端解压缩文件吗?是否有任何 API 可用于在移动端解压缩?

我不确定我的想法是否正确。这是做这类事情的常见方式吗?谢谢你。

4

1 回答 1

0

关于图像,我们经常单独下载它们,只是在下载内容时更新 UI,而不是强迫用户等待所有内容下载。或者延迟下载很好(例如按UIImageView类别提供,例如SDWebImageUIImageView+WebCache),可以根据需要有效地下载图像,这样用户就可以使用应用程序而无需等待所有内容下载。

关于文本,除非它们很大,否则您可以将它们一起下载。不过,比起压缩一堆文本文件,我认为发帖人会倾向于一些 JSON 格式的响应,这些响应会以您的应用程序以某种漂亮、易于使用的格式返回文本文件。但是,有一点(例如,组合的 JSON 超过 100k),将文本文件组合在一起会达到收益递减的点,在这种情况下,您可能需要单独下载。

在提供有意义的建议之前,我们需要更多关于应用程序的功能和数据分解(单个文本文件有多大,有多少等)的背景知识。但除非在下载所有内容之前应用程序完全无法运行,否则我倾向于单独下载图像,并为文本提供一些不错的 JSON 格式的单一提要。

让我们假设您有一系列产品的一些文本描述,以及与每个产品相关联的图像。然后你可能有一个看起来像这样的 JSON:

[
    {
        "id": 1,
        "description": "This product is ...",
        "image_url": "http://www.yourserver.com/images/img001.png"
    },
    {
        "id": 2,
        "description": "This different product is ...",
        "image_url": "http://www.yourserver.com/images/img002.png"
    },
    {
        "id": 3,
        "description": "This third product is ...",
        "image_url": "http://www.yourserver.com/images/img003.png"
    },
    {
        "id": 4,
        "description": "This last product is ...",
        "image_url": "http://www.yourserver.com/images/img004.png"
    }
]

您的应用程序可能会下载该 JSON(在这种情况下,它将包含所有文本字符串和一堆图像 URL),然后将其呈现在 UI 中,并在需要显示图像的位置使用UIImageView类别SDWebImage来更新imageUIImageView类的:

[cell.imageView setImageWithURL:[NSURL URLWithString:imageUrlString]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
于 2013-10-20T16:48:40.917 回答