亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android WebView 緩存詳解

發布時間:2020-10-17 20:05:06 來源:腳本之家 閱讀:206 作者:lqh 欄目:移動開發

 Android WebView 緩存詳解

一. 兩種緩存類型:

頁面緩存:加載一個網頁時的html、JS、CSS等頁面或者資源數據,這些緩存資源是由于瀏覽器 的行為而產生,開發者只能通過配置HTTP響應頭影響瀏覽器的行為才能間接地影響到這些緩存數據。 而緩存的索引放在:/data/data//databases 對應的文件放在:/data/data/package_name/cache/webviewCacheChromunm下
數據緩存:分為AppCache和DOM Storage兩種 我們開發者可以自行控制的就是這些緩存資源

AppCache:

       我們能夠有選擇的緩沖web瀏覽器中所有的東西,從頁面、圖片到腳本、css等等。 尤其在涉及到應用于網站的多個頁面上的CSS和JavaScript文件的時候非常有用。其大小目前通常是5M。 在Android上需要手動開啟(setAppCacheEnabled),并設置路徑(setAppCachePath)和容量 (setAppCacheMaxSize),而android中使用ApplicationCache.db來保存AppCache數據!

DOM Storage:

存儲一些簡單的用key/value對即可解決的數據,根據作用范圍的不同,有Session Storage和Local Storage兩種,分別用于會話級別的存儲(頁面關閉即消失)和本地化存儲(除非主動 刪除,否則數據永遠不會過期)在Android中可以手動開啟DOM Storage(setDomStorageEnabled), 設置存儲路徑(setDatabasePath)Android中Webkit會為DOMStorage產生兩個文件(my_path/localstorage/http_blog.csdn.net_0.localstorage和my_path/Databases.db)

二、WebView的5種緩存模式:

LOAD_NO_CACHE: 不使用緩存,只從網絡獲取數據
LOAD_CACHE_ONLY:  不使用網絡,只讀取本地緩存數據
LOAD_DEFAULT:  根據cache-control決定是否從網絡上取數據
LOAD_CACHE_NORMAL: API level 17中已經廢棄, 從API level 11開始作用同LOAD_DEFAULT模式
LOAD_CACHE_ELSE_NETWORK,只要本地有,無論是否過期,或者no-cache,都使用緩存中的數據

三、WebView緩存模式的設置:

  webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//或其他模式 

 根據需求緩存策略可為:判斷是否有網絡  有:使用LOAD_DEFAULT/LOAD_NO_CACHE

  無:使用LOAD_CACHE_ELSE_NETWORK

四、刪除緩存數據:

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
 webView.clearCache(true);
 webView.clearHistory();
 webView.clearFormData();
/**
 * 清除WebView緩存 
 */
public void clearWebViewCache(){

  //清理Webview緩存數據庫  
  try {
    deleteDatabase("webview.db");
    deleteDatabase("webviewCache.db");
  } catch (Exception e) {
    e.printStackTrace();
  }

  //WebView 緩存文件  
  File appCacheDir = new File(getFilesDir().getAbsolutePath()+APP_CACAHE_DIRNAME);
  Log.e(TAG, "appCacheDir path="+appCacheDir.getAbsolutePath());

  File webviewCacheDir = new File(getCacheDir().getAbsolutePath()+"/webviewCache");
  Log.e(TAG, "webviewCacheDir path="+webviewCacheDir.getAbsolutePath());

  //刪除webview 緩存目錄  
  if(webviewCacheDir.exists()){
    deleteFile(webviewCacheDir);
  }
  //刪除webview 緩存 緩存目錄  
  if(appCacheDir.exists()){
    deleteFile(appCacheDir);
  }
}  

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沾化县| 青神县| 洞头县| 瓦房店市| 会理县| 乳源| 噶尔县| 商南县| 西平县| 金华市| 宜兰县| 兰考县| 吴堡县| 额济纳旗| 绥德县| 会昌县| 隆林| 通许县| 定边县| 彭水| 仪征市| 从江县| 四子王旗| 大邑县| 墨玉县| 东港市| 靖宇县| 绥棱县| 昌江| 边坝县| 竹山县| 宁夏| 铜山县| 沾益县| 青神县| 永靖县| 红桥区| 霞浦县| 东山县| 武宣县| 高邮市|