欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iOS網(wǎng)絡開發(fā)(5)請求的緩存

有網(wǎng)絡請求的App有可能出現(xiàn)兩個問題:

創(chuàng)新互聯(lián)建站長期為超過千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為淮陰企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站設計,淮陰網(wǎng)站改版等技術服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

    1)遇到網(wǎng)絡不暢或數(shù)據(jù)量較大的情況下,會出現(xiàn)由于數(shù)據(jù)到達不及時使用不流暢的問題

    2)頻繁發(fā)送網(wǎng)絡請求,可能造成沒必要的流量產(chǎn)生以及拖累手機速度的問題

針對問題一,通常采用的策略是:延遲加載大數(shù)據(jù)的請求

針對問題二,通常采用適當?shù)木彺娌呗?,?jié)省網(wǎng)絡開銷

  • 延遲加載

在網(wǎng)絡請求中,比較大的資源,如圖片、視頻等,需要做一些特殊處理以提升App的性能

如以下場景:

     請求一個列表數(shù)據(jù),每個數(shù)據(jù)包含:字符串、圖片URL,tableView中需要顯示這些數(shù)據(jù)

     這里設計到多次請求,第一個請求得到列表數(shù)據(jù),之后多次請求下載所有圖片。

     如果當所有數(shù)據(jù)全部加載后再進行UI顯示,圖片的下載是非常耗時的,影響到App的體驗。

解決方案:

     當?shù)谝淮握埱螳@得列表數(shù)據(jù)后,即將所有數(shù)據(jù)顯示出來,圖片顯示的位置顯示一個占位圖片

     使用異步的網(wǎng)絡請求下載圖片資源,當圖片被下載之后立刻更新UI進行處理

示例說明:

    a. 發(fā)送一個GET請求數(shù)據(jù)獲一定數(shù)量的游戲人物信息

    iOS網(wǎng)絡開發(fā)(5)請求的緩存

    b. UITableView的數(shù)據(jù)源方法

    iOS網(wǎng)絡開發(fā)(5)請求的緩存 

        可以看到單元格cell為其模型屬性heroModel賦值的內容是網(wǎng)絡請求后的模型數(shù)據(jù)

    c. 單元格模型屬性的setter方法

    先看未使用延遲加載前的代碼:

    iOS網(wǎng)絡開發(fā)(5)請求的緩存

        最后圖片的顯示,直接使用的同步方式請求,由于圖片資源較大,UI界面會出現(xiàn)卡頓的情況

    改用延遲加載后的代碼:

    iOS網(wǎng)絡開發(fā)(5)請求的緩存

        先顯示一個占位圖片,然后異步請求圖片資源,請求完成后再顯示圖片

        這樣做,即使網(wǎng)絡不暢或圖片較大時也不會出現(xiàn)UI界面卡頓的情況

  • 緩存的引入

上面的解決方案,在一定情況下提升了用戶的體驗,但針對tableView來說,性能上可能還存在一定的問題:當tableView上下拖動過程中,會產(chǎn)生tableView的重用機制,意味著上面的代碼將會重復執(zhí)行,也就意味著下載圖片的網(wǎng)絡請求將重復發(fā)送

磁盤緩存:

     在第一次請求時,將請求的結果存儲在本地,下一次發(fā)送同一請求時,直接從本地獲取緩存即可

緩存的使用:

     對于需要頻繁加載的數(shù)據(jù),應使用本地緩存

     對于服務器經(jīng)常會更新的數(shù)據(jù),不應使用本地緩存

     對于服務器偶爾會更新的數(shù)據(jù),應修改該緩存策略

  • NSURLRequest的緩存機制

在創(chuàng)建請求對象時可以指定使用的緩存策略     

+ (instancetype)requestWithURL:(NSURL *)theURL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval
@property(readonly) NSURLRequestCachePolicy cachePolicy
enum{
     NSURLRequestUseProtocolCachePolicy = 0,     //使用協(xié)議的緩存策略
     NSURLRequestReloadIgnoringLocalCacheData = 1, //不使用本地緩存
     NSURLRequestReturnCacheDataElseLoad = 2,     //使用磁盤緩存
     NSURLRequestReturnCacheDataDontLoad = 3, //只使用磁盤緩存,不進行網(wǎng)絡加載
};
typedef NSUInteger NSURLRequestCachePolicy;

上面的延遲加載實例中:

    請求任務數(shù)據(jù)應當使用NSURLRequestReloadIgnoringLocalCacheData方式

    iOS網(wǎng)絡開發(fā)(5)請求的緩存

    延遲加載圖片應使用NSURLRequestReturnCachedDataElseLoad方式:

    iOS網(wǎng)絡開發(fā)(5)請求的緩存

  • NSURLCache緩存策略

請求的緩存數(shù)據(jù),通過NSURLCache管理

全局對象:   

+ (NSURLCache *)sharedURLCache

獲得緩存對象

- (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request

緩存對象NSCachedURLResponse的屬性

@property(readonly, copy) NSData *data
@property(readonly, copy) NSURLResponse *response

清理緩存數(shù)據(jù)

- (void)removeCachedResponseForRequest:(NSURLRequest *)request
- (void)removeAllCachedResponses

     App中通常需要,定期清理緩存

通過NSURLCache對象可以管理緩存的空間,緩存的控件可以是內存,也可以是磁盤

@property(readonly) NSUInteger currentDiskUsage
@property NSUInteger diskCapacity
@property(readonly) NSUInteger currentMemoryUsage
@property NSUInteger memoryCapacity

示例說明:

    在AppDelegate中添加代碼,每5分鐘檢測一次磁盤緩存的占用是否超過一半,如果是則發(fā)出緩存需要清理的通知(當然,也可以直接進行清理)

    iOS網(wǎng)絡開發(fā)(5)請求的緩存

新聞名稱:iOS網(wǎng)絡開發(fā)(5)請求的緩存
文章地址:http://aaarwkj.com/article28/jpocjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、做網(wǎng)站、外貿網(wǎng)站建設、網(wǎng)站營銷外貿建站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管
亚洲福利一区福利三区| 亚洲欧美日韩午夜在线| 人妻少妇亚洲中文字幕| 超碰欧美黄色免费在线| 亚洲性感人妻系列网站| 久久精品国产久精国产爱| 海外成人永久免费视频| 亚洲熟妇av乱码在线观看| 免费毛片一区二区三区| 日本免费精品一区二区三区中| 夫妻爱爱视频在线观看| 青青草免费在线播放视频网站| av毛片高清在线观看| 国产三级一区二区不卡| 久久成人av一区二区三区| 国产第一页国产第一页| 日韩美女av在线播放| 熟妇人妻精品一区二区| 欧美国产日韩一区二区三区视频| 好吊视频在线免费观看| 蜜臀视频一区二区在线播放| 国产亚洲加勒比久久精品| 丰满熟女人妻中文字幕免费| 国产精品欧美色区福利在线| 国产精品国产三级国产不产一地 | 人妻熟女一区二区视频| 国产一区二区爽爽爽视频| 在线观看免费国产k片| 精品国产无遮挡污污网站| 日韩视频在线一区二区三区| 色噜噜狠狠狠久久综合一区| 亚洲激情精品成人在线| av在线手机中文字幕| 午夜精品久久久免费视频| 免费观看黄片视频在线观看| 国产日韩欧美亚洲一区二区| 日本高清区一区二区三区四区五区 | 国产极品美女在线观看网站| 欧美日韩激情中文字幕| 国产精品久久一国产精品| 国产精品主播自拍视频|