繁体   English   中英

Javascript:当用户再次进入同一页面时,不会重发Json文件吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM