是否可以使用localStorage/sessionStorage或在cookie中缓存.getJSON查询一个小时?
<script>
jQuery(document).ready(function($) {
var rateYesterday;
$.getJSON( "http://api.fixer.io/<?php echo date("Y-m-d", time() - 60 * 60 * 24) ?>", function(dd) {
cache: true;
rateYesterday = dd;
});
var rateToday;
$.getJSON( "http://api.fixer.io/latest", function(jd) {
rateToday = jd;
cache: true;
console.log( "success" + rateToday['rates']['HUF'] );
$('#first').html(rateToday['rates']['HUF']);
$('#second').html(rateToday['rates']['CZK']);
if (rateToday['rates']['HUF'] >= rateYesterday['rates']['HUF'] ) {
$('#firstrate').addClass('goood');
}
if (rateToday['rates']['HUF'] < rateYesterday['rates']['HUF'] ) {
$('#firstrate').addClass('baaad');
}
if (rateToday['rates']['CZK'] >= rateYesterday['rates']['CZK'] ) {
$('#secondrate').addClass('goood');
}
if (rateToday['rates']['CZK'] < rateYesterday['rates']['CZK'] ) {
$('#secondrate').addClass('baaad');
}
})
.fail(function() {
console.log( "error" );
})
});
</script>我在代码中设置了cache: true,但是它并没有真正缓存数据。
有趣的是,如果我按了几次刷新按钮,我有时会得到:
TypeError: rateYesterday is undefined
if (rateToday['rates']['HUF'] >= rateYesterday['rates']['HUF'] ) {发布于 2015-10-20 14:55:13
正如注释指出的那样,这可能在服务器上做得更好,但是为了完成这个任务并回答问题,是的,您可以这样做。有一种方法:
function HourCache (jsonData) {
var stringValue;
if (typeof jsonData === 'string') {
stringValue = jsonData;
}
else {
stringValue = JSON.stringify(jsonData)
}
sessionStorage.setItem('jsonData', stringValue);
setTimeout(
function () {
sessionStorage.removeItem('jsonData');
}, 3600000
);
}https://stackoverflow.com/questions/33239798
复制相似问题