getJSON 在更新文件时缓存文件
getJSON caches file while it is being updated
我有一个加载过程 运行,它在我的本地计算机上大约 37 秒内填满了我的数据库。我现在正在为此做一个过程,但结果是有偏差的。
因为我是 运行 我的代码,所以我循环调用 getJSON
以不断从 JSON 文件中提取数据。当我发出请求时,我让我的加载按照描述对集合 JSON 文件执行持续更新。
但是,似乎我的拉动不断被缓存,因为我不断得到相同的结果。如果我在加载过程中刷新浏览器中的 JSON 文件,它会突然再次正常工作。
我假设这是一个缓存问题,但将 false
缓存添加到 AJAX 变量可能不会解决问题。这是一个在它旁边运行的进程。有谁知道如何强制它提取未缓存的文件,以便我始终获得正确的结果?
$.ajax({
cache: false,
url: vars.url,
type: "post",
data: r,
async: true,
processData: vars.process,
contentType: vars.contenttype,
beforeSend: function() {
if (vars.loadbar == 'true') {
interval = setInterval(function() {
$.getJSON(domain + '/core/files/results.json', function(data) {
console.log(data);
})
}, 500);
}
},
complete: function() {
clearInterval(interval);
},
success: function(data) {
// ...
}
});
我意识到我让这个问题在这里做了 运行,但这就是我最终解决这个问题的方式。
beforeSend: function(){
if(vars.loadbar == 'true'){
interval = setInterval(function () {
$.getJSON(domain + '/core/files/results.json?sid=' + Math.random() , function (data) {
// extra code and console logs
})
}, 500);
}
},
最后我修改了@AdamRoof 的评论以在二次调用中实际使用。现在它不会被缓存,所以我总是返回正确的值。
我有一个加载过程 运行,它在我的本地计算机上大约 37 秒内填满了我的数据库。我现在正在为此做一个过程,但结果是有偏差的。
因为我是 运行 我的代码,所以我循环调用 getJSON
以不断从 JSON 文件中提取数据。当我发出请求时,我让我的加载按照描述对集合 JSON 文件执行持续更新。
但是,似乎我的拉动不断被缓存,因为我不断得到相同的结果。如果我在加载过程中刷新浏览器中的 JSON 文件,它会突然再次正常工作。
我假设这是一个缓存问题,但将 false
缓存添加到 AJAX 变量可能不会解决问题。这是一个在它旁边运行的进程。有谁知道如何强制它提取未缓存的文件,以便我始终获得正确的结果?
$.ajax({
cache: false,
url: vars.url,
type: "post",
data: r,
async: true,
processData: vars.process,
contentType: vars.contenttype,
beforeSend: function() {
if (vars.loadbar == 'true') {
interval = setInterval(function() {
$.getJSON(domain + '/core/files/results.json', function(data) {
console.log(data);
})
}, 500);
}
},
complete: function() {
clearInterval(interval);
},
success: function(data) {
// ...
}
});
我意识到我让这个问题在这里做了 运行,但这就是我最终解决这个问题的方式。
beforeSend: function(){
if(vars.loadbar == 'true'){
interval = setInterval(function () {
$.getJSON(domain + '/core/files/results.json?sid=' + Math.random() , function (data) {
// extra code and console logs
})
}, 500);
}
},
最后我修改了@AdamRoof 的评论以在二次调用中实际使用。现在它不会被缓存,所以我总是返回正确的值。