app缓存方案

兼顾浏览器、IOS和安卓客户端缓存策略方案。
主体思路是页面加载远程接口数据,接口默认都会被缓存,设定缓存过期时间(不同模块时间不一样,通常两个小时)。全局设定一个js(通过远程加载),内容包括缓存过期时间,接口缓存是否过期等信息,如果后台接口内容有更新,通过修改js来强制刷新某个缓存。

一、定义全局js变量

var CONFIG_EOL = {
"domain": "https://gk.eol.cn", //主域名
"domain_api": "https://api.eol.cn", //主接口地址
"static_gkcx": "https://static-gkcx.eol.cn", //业务库静态资源
"static_data": "https://static-data.eol.cn", //核心库静态资源
"config_reload": 300,
"expire_data":{ //缓存过期时间 单位s
"default": 7200, //默认时间 2个小时
"news": 86400 //新闻模块 24个小时
},
"expire_path": [
"/www/json/operate/app/{*}.json",
"/www/json/video/{*}.json",
"/www/json/news/{*}.json",
"www/school/{*}/index.json",
"gksjk/api/school/hotlists"
]
}

二、页面每次启动,加载config.js

三、缓存流程图

四、缓存方案

H5采用localStorage进行缓存,缓存大小最大5M
缓存方式:
'/www/json/news/195.json': {
timestamp: '',
}
APP使用SQLite,使用cordova-sqlite-storage控制缓存,无大小限制