[英]How can I send data to a user that will persist between web page views, but which won't be resent to the server?
[英]Javascript: Json file won't be resent when user goes to the same page again?
我有一个类似于google的搜索功能,它的工作方式类似于某人进入搜索页面,然后服务器发送一个包含对象名称和ID的json文件,因此当用户在搜索框中输入内容时,该框会弹出相似的名称,当用户单击一个结果时,关联的id是使用post方法将用户定向到关联页面的引用。
问题是,在用户在北页上插入新对象后,尽管服务器已更新数据库和jsonfile,但当用户返回搜索页时,json文件将不会再次发送,因此用户将看不到搜索结果中新插入的对象名称。 所以我想知道如何解决这个问题。
下面的代码是搜索页面中发送json文件的代码。
<script>
var obj;
$.getJSON( 'obdatabase.json', function(obj) {
obj=obj;
});
// some code for search.
</script>
您是说它正在被浏览器缓存吗? 一个简单的解决方案是包括一个唯一的querystring参数:
<script>
var obj;
$.getJSON( 'obdatabase.json?d=' + (new Date().getTime()), function(obj) {
obj=obj;
});
// some code for search.
</script>
您的代码多一点会有所帮助。
我猜json响应正在缓存中。
您的出路是将jQuery.ajax函数与数据类型'json'一起使用并缓存false。
$.ajax({ url: "obdatabase.json", dataType :"json", cache:false });
注意:内部的cache:false是通过将一个随机数附加到url上来实现的,例如@mcgraphix的解决方案
传输您的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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.