• 王立平--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函数对扩充缓冲做出响应。      


  • 相关阅读:
    C++类中使用new及delete小例子(续)
    C++类中使用new及delete小例子
    C++类中static修饰的函数的使用
    C++类使用static小例子(新手学习C++)
    C++结构体中使用函数与类中使用函数小结
    记一次简单的性能优化
    [转载]Java的内存回收机制
    写给自己的项目总结
    [转载]正则表达式30分钟入门教程
    使用JRockit进行性能优化一:环境搭建
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7258490.html
Copyright © 2020-2023  润新知