王立平--WebView的緩衝機制

來源:互聯網
上載者:User

標籤:webview的緩衝機制

WebView的緩衝可以分為頁面緩衝和資料緩衝。 

       1.   頁面緩衝是指載入一個網頁時的html、JS、CSS等頁面或者資源資料。這些緩衝資源是由於瀏覽器的行為而產生,開發人員只能通過配置HTTP回應標頭影響瀏覽器的行為才能間接地影響到這些快取資料。

         他們的索引存放在/data/data/package_name/databases下。他們的檔案存放在/data/data/package_name/cache/xxxwebviewcachexxx下。檔案夾的名字在2.x和4.x上有所不同,但都檔案夾名字中都包含webviewcache。

   2.  資料緩衝分為兩種:AppCache和DOM Storage(Web Storage)。他們是因為頁面開發人員的直接行為而產生。所有的快取資料都由開發人員直接完全地掌控。 
AppCache使我們能夠有選擇的緩衝web瀏覽器中所有的東西,從頁面、圖片到指令碼、css等等。尤其在涉及到應用於網站的多個頁面上的CSS和JavaScript檔案的時候非常有用。其大小目前通常是5M。 
            在Android上需要手動開啟(setAppCacheEnabled),並設定路徑(setAppCachePath)和容量(setAppCacheMaxSize) 

Android中Webkit使用一個db檔案來儲存AppCache資料(my_path/ApplicationCache.db)

          如果需要儲存一些簡單的用key/value對即可解決的資料,DOM Storage是非常完美的方案。根據作用範圍的不同,有Session Storage和Local Storage兩種,分別用於會話層級的儲存(頁面關閉即消失)和本地化儲存(除非主動刪除,否則資料永遠不會到期)。 
在Android中可以手動開啟DOM Storage(setDomStorageEnabled),設定儲存路徑(setDatabasePath) 
Android中Webkit會為DOM Storage產生兩個檔案(my_path/localstorage/http_h5.m.taobao.com_0.localstorage和my_path/localstorage/Databases.db)

            在Android中清除緩衝時,如果需要清除Local Storage的話,僅僅刪除Local Storage的本機存放區檔案是不夠的,記憶體裡面有快取資料。如果再次進入頁面,Local Storage中的快取資料同樣存在。需要殺死程式啟動並執行當前進程再重新啟動才可以。 

 

  1. WebSettings  webseting  =  m_webview .getSettings();  
  2.     webseting.setDomStorageEnabled(true);             
  3.         webseting.setAppCacheMaxSize(1024*1024*8);//設定緩衝大小,我設的是8M  
  4.     String  appCacheDir  =  this.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath();      
  5.         webseting.setAppCachePath(appCacheDir);  
  6.         webseting.setAllowFileAccess(true);  
  7.         webseting.setAppCacheEnabled(true);  
  8.         webseting.setCacheMode(WebSettings.LOAD_DEFAULT);   
webview可以設定一個WebChromeClient對象,在其onReachedMaxAppCacheSize函數對擴充緩衝做出響應。      


王立平--WebView的緩衝機制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.