首頁>Club>
13
回覆列表
  • 1 # 使用者122912941657

      順便說下NSURLRequest物件,它有個cachePolicy屬性,只要其值為NSURLRequestReloadIgnoringLocalCacheData的話,就不會訪問快取。可喜的是這種情況貌似只有在快取裡沒取到,或是強制重新整理時才可能出現。  實際上NSURLCache本身就有磁碟快取功能,然而在iOS上,NSCachedURLResponse卻被限制為不能快取到磁碟(NSURLCacheStorageAllowed被視為NSURLCacheStorageAllowedInMemoryOnly)。  不過既然知道了原理,那麼只要自己實現一個NSURLCache的子類,然後改寫cachedResponseForRequest:方法,讓它從硬碟讀取快取即可。  於是就開工吧。這次的demo邏輯比較複雜,因此我就按步驟來說明了。  先定義檢視和控制器。  它的邏輯是開啟應用時就嘗試訪問快取檔案,如果發現存在,則顯示快取完畢;否則就嘗試下載整個網頁的資源;在下載完成後,也顯示快取完畢。  不過下載所有資源需要解析HTML,甚至是JavaScript和CSS。為了簡化我就直接用一個不顯示的UIWebView載入這個頁面,讓它自動去發起所有請求。  當然,快取完了還需要觸發事件來顯示網頁。於是再提供一個按鈕,點選時顯示快取的網頁,再次點選就關閉。  順帶一提,我本來想用Google為例的,可惜它自己實現了HTML 5離線瀏覽,也就體現不出這種方法的意義了,於是只好拿百度來墊背。  Objective-c程式碼 收藏程式碼  #import

  • 中秋節和大豐收的關聯?
  • 佛郎哥能利用德意卻使西班牙在二戰置身事外,他憑的什麼?