NSURLCache實現離線閱讀的一點小心得

2021-06-29 07:54:32 字數 598 閱讀 1761

[[[

on 2012-06-19 under ios

用來實現網頁離線快取(用於離線閱讀)的方式比較多,比如:

1、利用html5的cache機制(但是網頁cache有大小限制)

2、利用對html5做自定**析,對dom樹分析後請求並儲存相關資源。

3、利用nsurlcache(簡單,自己寫儲存,寫一二級快取效率高,空間無限制)

4、利用nsurlprotocol完成快取工作(由於nsurlprotocol我還沒有在實際專案中使用,了解也不深入,暫不介紹)

html的快取也可以通過js指令碼取出html**來快取,由於中間我們會對頁面做處理,所以沒有這樣做。

需要針對status code來判斷是否快取(200到300以內的狀態碼代表資源請求成功,其他的狀態碼不能快取下來),通過單獨的connection發起請求也需要判斷這個。

如果需要與其他模組共享快取只需要採用同樣的目錄,及命名規則(我採用的對url做md5),儲存nsdata,建議最好mimetype的索引頁儲存下來,這樣網頁可以與原生客戶端使用同樣的快取資料。

儲存成cachedresponse可以保留更多的有效資訊,但是這樣與其他模組的cache共用就會相對麻煩。

閱簡單工廠實現心得

工廠模式心得 以connection類的createcommad方法為例 commad基類 public abstract class commad sqlcommad類 public class sqlcommad commad sqlcommad 具體實現方法 oraclecommad類 pub...

使用NSURLProtocol實現離線快取

一 說明 則只能攔截到 網頁內部的資源載入攔截不到。頁面跳轉屬於最初始請求之內,可以攔截到。二 建立nsurlprotocol的子類,通過下面的 註冊此協議類 nsurlprotocol registerclass myurlprotocol class 三 下面是此子類的 import myurl...

如何實現離線群聊

1.群聊訊息要儲存進資料庫,群訊息要有乙個有序id標識。離線使用者上線時,要拉取檢視 2.每個群成員都要在資料庫裡,記錄他最後收到的那個群訊息id。在他上線時,根據這個id和最新id,決定要給他推送哪些訊息 3.使用者收到訊息後,要發個ack給服務端,服務端才跟新他的最後收到訊息id。避免訊息丟包 ...