问题是,用户在北方页面上插入新对象后,虽然服务器已更新数据库和jsonfile,但当用户返回搜索页面时,json文件将不会再次发送,因此用户赢了“ t在搜索结果中看到新插入的对象名称。所以我想知道如何解决这个问题。
以下代码是搜索页面中发送json文件的代码。
<script>
var obj;
$.getJSON( 'obdatabase.json', function(obj) {
obj=obj;
});
// some code for search.
</script>
答案 0 :(得分:2)
你的意思是它被浏览器缓存了吗?一个简单的解决方案是包含一个唯一的查询字符串参数:
<script>
var obj;
$.getJSON( 'obdatabase.json?d=' + (new Date().getTime()), function(obj) {
obj=obj;
});
// some code for search.
</script>
答案 1 :(得分:2)
您的代码可能会有所帮助 我猜测json的反应正在被缓存 你的出路是使用数据类型为“json”的jQuery.ajax函数并缓存为false。
$.ajax({
url: "obdatabase.json",
dataType :"json",
cache:false
});
注意:在内部缓存:false是通过在网址上附加一个随机数字来实现的,就像@mcgraphix的解决方案一样
答案 2 :(得分:0)
将您的AJAX回调转移到complete
函数,它更加一致
<script>
var obj;
$.getJSON('obdatabase.json').complete(function(data){
console.log(data.responseText);
console.log(JSON.parse(data.responseText)) // obj
})
// some code for search.
</script>