0
可以使用localStorage/sessionStorage缓存.getJSON查询或在X小时内缓存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']) {
这将在服务器上做得更好。看到[这个问题](http://stackoverflow.com/questions/9324541/caching-json-apache-php-jquery)及其相关的问题。 – Blazemonger
什么是更高层次的目标......如果数据存在于存储中并且没有过期,请不要提出请求? – charlietfl
另外请注意,你得到undefined的原因是第二个请求可以在第一个请求之前轻松完成 – charlietfl