缓存JSON文件
问题描述:
我有一个网站,我有13个链接。当你点击一个链接时,你会得到一个不同的json文件,它显示不同的数据。缓存JSON文件
一个问题是,当更新json文件时,更新不会在线反映,直到您清除缓存或查看json文件并刷新它。
另一个问题是,您点击的第一个链接出现的json数据会出现在您点击的其他链接上。
任何想法如何解决这些问题?
的jQuery:
$('.school').on("click", function() {
var school = $(this).attr('school');
$.getJSON(school + "/data.json", function(data) {
$('.images').empty();
$('.videos').empty();
$('.field').empty();
var location, enrollment, tuition, history, alumni, fact, prose;
location = data.location;
enrollment = data.enrollment;
tuition = data.tuition;
history = data.history;
fact = data.fact;
alumni = data.alumni;
prose = data.prose;
$('.location').html('<strong>Location</strong>: ' + location);
$('.enrollment').html('<strong>Enrollment</strong>: ' + enrollment);
$('.tuition').html('<strong>Undergraduate tuition</strong>: ' + tuition);
$('.history').html('<strong>History</strong>: ' + history);
$('.fact').html('<strong>Notable fact:</strong> ' + fact);
$('.alumni').html('<strong>Prominent alumni</strong>: ' + alumni);
$('.prose').html(prose);
});
});
答
假如你不能改变服务器上的缓存选项,您可以通过使用的事实,连接到URL查询字符串缓存解决这个问题。我将_
设置为Date.now()
,以便您的链接仅在1ms内保持有效。
var school = $(this).attr('school'),
url = school + "/data.json?_=" + Date.now();
$.getJSON(url, function(data) { /* ... */ });
没有看到标记,我不能与你的问题的第二部分帮助,但对于第一部分简单地添加新的'日期()的getTime()'的文件名,使用一个完全成熟的AJAX调用等等您可以将'cache:false'作为参数传递,或者使用'$ .ajaxSetup'来全局设置ajax调用不缓存。 – Archer 2015-03-31 17:05:07