自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

IOS開發(fā)中第三方庫Three20 Network緩存機制

移動開發(fā) iOS
IOS開發(fā)中第三方庫Three20 Network緩存機制是本文要介紹的內(nèi)容,主要是來學習Three20 Network緩存機制,具體內(nèi)容來看本文詳細內(nèi)容講解。

IOS開發(fā)中第三方庫Three20 Network緩存機制是本文要介紹的內(nèi)容,主要是來學習Three20 Network緩存機制,具體內(nèi)容來看本文詳細內(nèi)容講解。

前置知識:

http協(xié)議自帶的Last-Modified和ETag,詳細的網(wǎng)上搜索下就行了。簡單來說就是,服務(wù)器在返回資源時包含一個ID(時間或是某種token),客戶端緩存該ID,下一次再請求同一資源時,包含這個ID,服務(wù)器根據(jù)此ID來判斷資源是否改變,從而返回不同的結(jié)果(200或是304)。

Three20實現(xiàn)的默認緩存方案是:

  1. TTURLRequestCachePolicyDefault 
  2. = (TTURLRequestCachePolicyMemory | TTURLRequestCachePolicyDisk  
  3. | TTURLRequestCachePolicyNetwork),  
  4. TTURLRequestCachePolicyNetwork 代表使用 Last-Modified 策略,  
  5. TTURLRequestCachePolicyMemory | TTURLRequestCachePolicyDisk 代表使用內(nèi)存和文件緩存資源和資源ID, 

改變緩存方案:

  1. TTURLRequest request;  
  2. //blah,blah  
  3. request.cachePolicy = cachePolicy | TTURLRequestCachePolicyEtag; 

這里增加了Etag的功能,如果服務(wù)器支持的話,毫無疑問這是***的方案。其他類推,比如不需要緩存。

如何使用緩存:

這里拉一段TTImageView的代碼,一看就知道:

  1. - (void)reload {  
  2. if (nil == _request && nil != _urlPath) {  
  3. UIImage* image = [[TTURLCache sharedCache] imageForURL:_urlPath];  
  4. if (nil != image) {  
  5. self.image = image;  
  6. } else {  
  7.  
  8. TTURLRequest* request = [TTURLRequest requestWithURL:_urlPath delegate:self];  
  9. request.response = [[[TTURLImageResponse alloc] init] autorelease];  
  10. if (![request send]) {  
  11. // Put the default image in place while waiting for the request to load  
  12. if (_defaultImage && nil == self.image) {  
  13.   self.image = _defaultImage;  
  14. }  
  15. }  
  16. }  
  17. }  

使用TTURLCache的單例,可以獲取任意URL資源的本地緩存。這里的邏輯是這樣的:

首先判斷內(nèi)存中是否存在這種圖片:

  1. UIImage* image = [[TTURLCache sharedCache] imageForURL:_urlPath] 

如果不存在,發(fā)起一個request,使用默認的policy,獲取該圖片。假設(shè)該圖片上次打開程序時已經(jīng)下載過,已經(jīng)緩存在disk(這是默認的),并且圖片在服務(wù)器上沒有變更,且服務(wù)器支持if-modified, request默認就會返回disk上的圖片。

詳細的可以看TTURLCache,如果手動send 一個request,則默認的policy就可以很好的實現(xiàn)了緩存機制。一些內(nèi)置的控件,比如TTTableView, 如果包含圖片,也實現(xiàn)的很理想。

小結(jié):IOS開發(fā)中第三方庫Three20 Network緩存機制的內(nèi)容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2011-08-19 09:49:03

iPhone開發(fā)Three20 NetTTRequestLo

2014-07-23 08:55:42

iOSFMDB

2011-08-16 18:56:11

iPhone開發(fā)Three20

2019-07-30 11:35:54

AndroidRetrofit

2013-08-14 09:50:32

iOS類庫

2011-07-25 14:14:49

iPhone SQLITE Pldatabase

2015-11-05 16:44:37

第三方登陸android源碼

2011-08-19 10:35:19

iPhone應(yīng)用Three20

2013-01-15 13:50:22

iOS開發(fā)開源庫

2015-07-13 13:34:13

ios第三方庫xcode插件

2010-11-08 09:51:34

jQueryJavaScript

2014-07-22 10:56:45

Android Stu第三方類庫

2015-07-13 09:48:21

iOS

2021-08-08 11:29:04

Android第三方ROM調(diào)查

2021-03-24 09:30:49

鴻蒙HarmonyOS應(yīng)用

2022-01-14 09:57:14

鴻蒙HarmonyOS應(yīng)用

2010-03-03 15:10:49

第三方Python庫

2019-09-03 18:31:19

第三方支付電商支付行業(yè)

2014-02-10 10:22:33

微信開發(fā)者

2009-03-12 15:32:49

WEB開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號