Android WebView快取機制詳解

2021-06-21 09:49:29 字數 1940 閱讀 7580

android webview快取機制

當我們載入html時候,會在我們data/應用package下生成database與cache兩個資料夾:

我們請求的url記錄是儲存在webviewcache.db裡,而url的內容是儲存在webviewcache資料夾下.

/data/data/package_name/cache/

/data/data/package_name/database/webview.db

/data/data/package_name/database/webviewcache.db

2、快取模式(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。

3、清除快取

clearcache(boolean)

cachemanager.clear高版本中需要呼叫

隱藏api

4、控制大小

無系統api支援。

可選方式:定時統計快取大小、按時間順序刪除快取。

二、h5快取

1、快取構成

根據提供的路徑,在h5使用快取過程中生成的快取檔案。

2、快取模式

無模式選擇,通過

設定是否開啟。預設關閉,即,h5的快取無法使用。

3、清除快取

找到呼叫

設定快取的路徑,把它下面的檔案全部刪除就ok了。

4、控制大小通過

設定快取最大容量,預設為max integer。

同時,可能通過覆蓋

來設定快取超過先前設定的最大容量時的策略。

這裡又不得不拿ios做一些比較:ios中的webview的快取機制可以拿到瀏覽過的網頁的二進位製流,這樣下次就直接可以把流拿去顯示

Android WebView刪除快取

刪除儲存於手機上的快取.clear the cache before time numdays private int clearcachefolder file dir,long numdays if child.lastmodified numdays catch exception e ret...

android webview 文字重疊

webview載入本地資源檔案html時,如果html中有,載入時會先載入文字,後載入,因此會出現排版混亂的情況,好像載入了兩遍,這種情況是因為,html中的高度是自適應的,沒有設定具體的值,載入出來後,並沒有將文字往下擠壓,所以出現了重疊的現象,解決方法 將html中的寬高設成固定的值,這樣載入文...

android webview 文字重疊

webview載入本地資源檔案html時,如果html中有,載入時會先載入文字,後載入,因此會出現排版混亂的情況,好像載入了兩遍,這種情況是因為,html中的高度是自適應的,沒有設定具體的值,載入出來後,並沒有將文字往下擠壓,所以出現了重疊的現象,解決方法 將html中的寬高設成固定的值,這樣載入文...