hybird 开发中的缓存问题

本文探讨了Hybrid开发中遇到的缓存问题,包括http协议缓存、file协议、storage、sqlite、webworker以及Android webView的缓存策略。详细分析了Android webView的页面缓存和离线功能实现,并提供了HTML5离线应用的配置方法。同时,文章还讨论了如何在无网络情况下使用缓存,并给出了清除和控制缓存大小的方案。
摘要由CSDN通过智能技术生成

hybird 开发中的缓存问题

http协议缓存

通过服务器http加载的资源,方便服务器push的方案,缓存由浏览器和服务器共同决定。

file协议

放在资源包中的文件,通过file协议的相对路径或者绝对路径加载,应该是永久缓存只要不更新包,资源就不会更新。

storage

通过storage 缓存数据,通过onstorage更新dom

sqlite

通过sqlite存储少量持久缓存资源,不要存储过大的文件,对于sqlite的存储,可以使用webworker开启一个新的线程去存储数据,在操作数据库时影响浏览器渲染性能。

webworker

webworker,多线程之间不支持数据共享,需要借助中间环节,比如storage

Android webView 缓存 Cache + HTML5离线功能 解决

WebView的缓存可以分为AppCache页面缓存DOM Storage(Web Storage)数据缓存

AppCache(页面缓存)是指加载一个网页时的html、JS、CSS等页面或者资源数据。这些缓存资源是由于浏览器的行为而产生,开发者只能通过在对应资源服务器中配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。

AppCache(页面缓存)使我们能够有选择的缓冲web浏览器中所有的东西,从页面、图片到脚本、css等静态资源。尤其在涉及到应用于网站的多个页面上的CSS和JavaScript文件的时候非常有用。其大小目前通常是5M。可以配置,通过安卓api。

在·Android·上需要手动开启(setAppCacheEnabled),并设置路径(setAppCachePath)和容量(setAppCacheMaxSize
AndroidWebkit使用一个db文件来保存AppCache数据(my_path/ApplicationCache.db

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

数据缓存,DOM Storage(Web Storage)

如果需要存储一些简单的用key/value对即可解决的数据,DOM Storage(Web Storage)是非常完美的方案。根据作用范围的不同,有Session StorageLocal Storage两种,分别用于会话级别的存储(页面关闭即消失)和本地化存储(除非主动删除,否则数据永远不会过期)。
在Android中可以手动开启DOM Storage(setDomStorageEnabled),设置存储路径(setDatabasePath
Android中Webkit会为DOM Storage产生两个文件my_path/localstorage/http_h5.m.taobao.com_0.localstorage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值