zoukankan      html  css  js  c++  java
  • 王立平--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函数对扩充缓冲做出响应。      


  • 相关阅读:
    Android -- Camera2(Android5.0)
    Android -- Camera.ShutterCallback
    Android -- selector&&StateListDrawable
    Centos安装FTP服务器和配置
    Android -- setWillNotDraw()
    Android -- ViewPager切换动画,PageTransformer
    关于通信的关键词UDP/(TCP/IP)/IPC/RPC/.NET Remoting/WebService/WCF/Http 系列
    已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
    JavaScript的NaN-唯一 一个自己不等于自己的对象!!
    【ShoppingPeeker】-基于Webkit内核的爬虫蜘蛛引擎 ShoppingWebCrawler的姊妹篇-可视化任务Web管理
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7258490.html
Copyright © 2011-2022 走看看