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