1. 程式人生 > >iOS資料庫離線快取思路和網路層封裝——原理

iOS資料庫離線快取思路和網路層封裝——原理

資料展示型的頁面做離線快取可以有更好的使用者體驗,使用者在離線環境下,或是網路載入異常的情況下,仍然可以獲取一些已經快取的資料進行頁面的顯示,以避免頁面空白。

進行資料快取操作,首選SQLite+FMDB+LKDB。因為是輕量級,對資料的儲存讀取相對於其他幾種方式有優勢。

本文是對MKNetwork的網路框架進行快取封裝。沒有涉及太多業務邏輯層面的需求,只是對一些方法再次封裝方便使用,也避免專案對第三方的耦合性,能夠簡單的快速的更換底層使用的網路請求程式碼。

網路資料快取的使用主要有以下幾種情況。

情況1:有快取,且快取沒有過期時,優先使用快取。即在進行網路請求時,首先判斷是否存在本地快取,如果已經存在且快取沒有過期,則使用快取資料。

情況2:有快取,但快取已經過期時,則重新載入新資料。即在進行網路請求時,首先判斷是否存在本地快取,如果已經存在快取,而且快取已經過期,則重新進行網路請求,載入最新的資料,當請求載入成功後,刪除過期的快取,並將最新的資料快取起來,同時使用最新的資料。

情況3:有快取,但總是載入最新的資料。即在進行網路請求時,不管有沒有本地快取,都進行網路請求載入最新的資料進行使用。

基於這三種情況,在設定快取機制時,則可以定義三種樣式:

1 不做快取處理;

2 無視快取,總是載入最新資料;

3 快取過期時,才載入最新資料。