標籤:
WebView的緩衝可以分為頁面緩衝和資料緩衝。
頁面緩衝是指載入一個網頁時的html、JS、CSS等頁面或者資源資料。這些緩衝資源是由於瀏覽器的行為而產生,開發人員只能通過配置HTTP回應標頭影響瀏覽器的行為才能間接地影響到這些快取資料。
那麼相關的緩衝到的地址目錄是:
請求的Url記錄是儲存在webviewCache.db裡,而url的內容是儲存在webviewCache檔案夾下.
緩衝構成
/data/data/package_name/cache/
/data/data/package_name/database/webview.db
/data/data/package_name/database/webviewCache.db
緩衝模式(5種)
LOAD_CACHE_ONLY: 不使用網路,唯讀取本機快取資料
LOAD_DEFAULT: 根據cache-control決定是否從網路上取資料。
LOAD_CACHE_NORMAL: API level 17中已經廢棄, 從API level 11開始作用同LOAD_DEFAULT模式
LOAD_NO_CACHE: 不使用緩衝,只從網路擷取資料.
LOAD_CACHE_ELSE_NETWORK,只要本地有,無論是否到期,或者no-cache,都使用緩衝中的資料。
如:www.taobao.com的cache-control為no-cache,在模式LOAD_DEFAULT下,無論如何都會從網路上取資料,如果沒有網路,就會出現錯誤頁面;在LOAD_CACHE_ELSE_NETWORK模式下,無論是否有網路,只要本地有緩衝,都使用緩衝。本地沒有緩衝時才從網路上擷取。
www.360.com.cn的cache-control為max-age=60,在兩種模式下都使用本機快取資料。
總結:根據以上兩種模式,建議緩衝策略為,判斷是否有網路,有的話,使用LOAD_DEFAULT,無網路時,使用LOAD_CACHE_ELSE_NETWORK。
android webview 緩衝