標籤:http io os ar strong 資料 sp 問題 c
手機用戶端為什麼會留存下來?而不是被一味的Wap替代掉?因為手機用戶端有Wap無可替代的優勢,就是自身較強的計算能力。
手機中不可避免的一環:圖片緩衝,在軟體的整個運行過程中顯得尤為重要。
先簡單說一片緩衝的作用:
- 提高響應速度
- 減少網路流量
- 提高使用者體驗
提高響應速度:因為圖片一旦緩衝在本地之後,那麼本地IO資料的讀取,遠比網路中得IO讀取效率要高的多。所以可以提高響應速度
減少網路流量:一張圖片在某些情況下,只載入一次,之後便不會重新載入,減少了網路流量。減少流量肯定是必然的。介於國內的流量費用這麼貴,是肯定必要的
提高使用者體驗:這個體驗並不僅僅存在於相應速度上,還在一些斷網模式上。其實我想說的是。就算是我們的電腦硬碟丟了,我們軟體也應該茁壯的運行下去,更何況僅僅是斷網而已。
當然這樣也會帶來弊端:資料同步問題,如果網路中得資料更新了。那麼你再本地看到的資料永遠都是舊資料。其實我覺得這個問題是一個悖論。減少了網路流量,這種收益,遠遠大於那些舊資料的問題。當然了,特殊的軟體或者某些情況(Wifi)可能會需要資料及時重新整理。那麼就先載入本機資料。然後從網路中載入資料,替換快取資料就好了。這個與資料緩衝並不衝突。在特殊點,就分時間段到期就好了。比如說,下載一張圖片,一小時內有效。如果超過一小時,就認為失效了。雖然慢點,但是我依然看到了最新的資料。至於這些策略問題,要根據不同的情況做最合適的設計,在此不做贅述,如果你有興趣,我們也可以討論討論。
OK,迴歸正題。說一下我們的緩衝模組設計。簡單點說,就是把網路中得地址映射到本地目錄唄。簡單想想,把網路地址中得某些特殊欄位替換掉就OK了,比如說 “/”替換成 “_”就可以達到映射的目的了。或者直接直接分錄的情況下儲存到本地,就Ok了,但是這樣會帶來其他的不確定的問題(網路地址的長度,如果策略制定的不好,會不會出現緩衝錯亂的問題。短時間緩衝無法實現的問題等等)。我的做法是這樣的,將網路地址中得串連,直接跟本地的某一個唯一緩衝地址建立映射關係。並且連同建立時間儲存到資料庫中。這樣就可以做到上述的所有的緩衝效果了。
先放個思路上來,如果需要代碼的話。等之後再說。
更多.net開發資訊請關注近乎/Spacebuilder開發分享社區》》
IOS編程 圖片緩衝模組設計