2013-10-20 59 views
0

在服務器端,會有很多文本和圖像,我想下載。 問題是我不想單獨獲取這些東西,我想將它們打包到一個文件中,以便利用暫停和恢復功能。 我應該在服務器端壓縮它們並在移動端解壓縮文件嗎? 有沒有我可以用來在手機端解壓縮的API?IOS下載多個文件

我不確定我的想法是否正確。這是做這種事情的常見方式嗎?謝謝。

回答

0

關於圖像,我們經常會單獨下載它們,只是在下載東西時更新UI,而不是強迫用戶等待所有下載。或者懶惰的下載很不錯(例如UIImageView類別,例如SDWebImageUIImageView+WebCache),可以在需要時有效地下載圖像,這樣用戶就可以在不需要等待下載任何內容的情況下使用應用程序。

關於文本,除非它們很大,你可以一起下載它們。不過,我認爲帖子人會傾向於一些JSON格式的響應,它會以一些很好的,易於使用的格式返回文本文件。有一點(比如,聯合的JSON超過10萬),但是,將文本文件組合在一起會導致收益遞減點,在這種情況下,您可能需要進行單獨的下載。

在提供有意義的建議之前,我們需要更多關於應用程序的功能和數據細目(單個文本文件有多大,多少等)的背景知識。但除非應用程序根本無法正常工作,直到所有內容都下載完畢,否則我會傾向於單獨下載圖像,以及一些不錯的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更新UIImageView像這樣的image

[cell.imageView setImageWithURL:[NSURL URLWithString:imageUrlString] 
       placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
+0

我已經使用SDWebImage。 我的問題是這樣的: 說我的應用程序是一個在線magzine查看器。用戶可以在線閱讀電子雜誌,以便SDWebImage可以發揮作用。 但是,我想提供一個功能來使下載的雜誌。一旦下載完成,用戶可以離線閱讀。所以問題是我應該如何處理這個問題。我正在考慮將雜誌的文本和圖像封裝到一個zip文件中,用戶可以直接下載該文件,而在移動端,我的應用將其解壓並將數據保存到相關的數據庫表中。這是做這件事的正確方法嗎? – user2053760

+0

我已經看到了下載整版的第一個模型(很多雜誌都這樣做)以及檢索即用和可選檢索一切爲脫機模型(一堆報紙做這個)。我認爲後者更優雅,但前者顯然更容易。在zip庫方面,請參閱[這個問題](http://stackoverflow.com/questions/11333399/download-and-unzip-file-in-ios)。 – Rob