# 数据缓存+图片缓存
> 引自tcld2269
## **demo下载地址**:http://pan.baidu.com/s/1i5JqPFZ
* * * * *
> 设计思路:1.先从本地文件读取数据,如果读取到则直接返回
2.如果本地没有缓存,则前往服务器取数据,然后存到本地
3.如果本地缓存过期(服务器端数据进行了更新),则更新本地缓存文件
* * * * *
> 1.通用js,存放在common.js,每个页面都要引用。
var serverurl = "http://xxx.xxx.com/appservice.asmx";//服务器接口路径
var machineurl = "http://xxx.xxx.com";//服务器路径,用于图片显示
~~~
//缓存方法
function doCache(folder, id, url, callback) {
readFile('/' + folder + '/' + id + '.json', function(ret, err) {
if (ret.status) {
//如果成功,说明有本地存储,读取时转换下数据格式
//拼装json代码
//alert('取到缓存')
var cacheData = ret.data;
callback(JSON.parse(cacheData));
iCache($('.cache'));
//再远程取一下数据,防止有更新
ajaxRequest(url, 'GET', '', function(ret, err) {
if (ret) {
if (cacheData != JSON.stringify(ret)) {
//有更新处理返回数据
//alert('更新缓存')
callback(ret);
//缓存数据
writeFile(ret, id, folder);
iCache($('.cache'));
}
} else {
alert('数据获取失败!');
}
})