|
为了减轻服务端的压力,我想把部分不经常更新的数据,让用户下载到手机本地
每次加载的时候,在本地目录查找这个json文件,
如果有就直接加载,
如果没有 (例如被用户清理垃圾弄丢了),再去服务端重新下载
测试 ,这个 $.getJSON 貌似无法加载下载的Json文件
代码如下:
Model.prototype.data1CustomRefresh = function(event){
var data1 = this.comp("data1");
var url = "http://www.baidu.com/1234.json"; ////远程地址
var localUrl = cordova.file.cacheDirectory + '1234.json'; ////下载到本地的路径
var resolveLocalFileSystemURL = window.resolveLocalFileSystemURL || window.webkitResolveLocalFileSystemURL;
resolveLocalFileSystemURL(localUrl,
function (dirEntry) { /////文件存在,直接加载
$.ajaxSettings.async = false;
$.ajaxSettings.global = false;
$.getJSON(localUrl, function(data){ ////测试在这一步没执行,貌似$.getJSON 无法打开上面目录的文件
data1.loadData(data);
});
},
function (err) { /////文件不存在,先下载后再加载
var fileTransfer = new FileTransfer();
fileTransfer.download( //调用对象的下载方法,开始下载
url,
localUrl,
function(entry) {
$.ajaxSettings.async = false;
$.ajaxSettings.global = false;
$.getJSON(localUrl, function(data){ ////测试在这一步没执行,貌似$.getJSON 无法打开上面目录的文件
data1.loadData(data);
});
},
function(error) { //出错回调函数
},
false,
{ }
);
}
);
求教,谢谢
|
|