簡體   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