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中的寬高設成固定的值,這樣載入文...