我需要为 android 设备缓存我的 HttpClient 响应。他们官方文档中给出的示例适用于 Iphone 和 iPad。
问问题
271 次
1 回答
0
好的,这是实现此目的的一种方法:
在您的 httpRequests 成功处理程序中,将“时间戳”附加到您的响应中:
// Assuming you are working with JSON data
var response = JSON.parse(this.responseText);
response.timestamp = new Date();
// For the purpose of this example, we persist our response to properties
Ti.App.Properties.setObject('cachedResponse', response);
在您的按钮事件监听器中,我们将检查已经过去的时间
button.addEventListener('click', function() {
var cachedResponse = Ti.App.Properties.getObject('cachedResponse', { timestamp: false });
if(cachedResponse.timestamp) {
if(getHoursDiff(cachedResponse.timestamp, new Date()) > 24) {
// Last request older than 24 hours, reload data
} else {
// Last request was within 24 hours, use cached data
}
} else {
// No data has been saved yet, load Data
}
});
此函数以小时为单位计算时差
// http://blogs.digitss.com/javascript/calculate-datetime-difference-simple-javascript-code-snippet/
function getHoursDiff(earlierDate, laterDate) {
var nTotalDiff = laterDate.getTime() - earlierDate.getTime();
var hours = Math.floor(nTotalDiff/1000/60/60);
return hours;
}
注意
这不是一个完整的示例,您必须根据需要优化和更改代码。
于 2013-10-04T11:21:57.440 回答