Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:Json文件赢得';当用户再次转到同一页时,是否不重新发送?_Javascript_Jquery_Html_Json - Fatal编程技术网

Javascript:Json文件赢得';当用户再次转到同一页时,是否不重新发送?

Javascript:Json文件赢得';当用户再次转到同一页时,是否不重新发送?,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个类似google的搜索功能,它的工作方式就像当有人进入搜索页面时,服务器会发送一个json文件,其中包含对象名和id,所以当用户在搜索框中键入内容时,该框会弹出类似的名称,当用户点击一个结果时,关联id是使用post方法将用户定向到关联页面的引用 问题是,在用户在更北的页面上插入新对象后,尽管服务器已经更新了数据库和jsonfile,但当用户返回到搜索页面时,json文件不会再次发送,因此用户不会在搜索结果中看到新插入的对象名。所以我想知道我怎样才能解决这个问题 下面的代码是搜索页面中发

我有一个类似google的搜索功能,它的工作方式就像当有人进入搜索页面时,服务器会发送一个json文件,其中包含对象名和id,所以当用户在搜索框中键入内容时,该框会弹出类似的名称,当用户点击一个结果时,关联id是使用post方法将用户定向到关联页面的引用

问题是,在用户在更北的页面上插入新对象后,尽管服务器已经更新了数据库和jsonfile,但当用户返回到搜索页面时,json文件不会再次发送,因此用户不会在搜索结果中看到新插入的对象名。所以我想知道我怎样才能解决这个问题

下面的代码是搜索页面中发送json文件的代码

<script>
    var obj;
        $.getJSON( 'obdatabase.json', function(obj) {  
            obj=obj;
        });
     // some code for search.
</script>

var-obj;
$.getJSON('obdatabase.json',函数(obj){
obj=obj;
});
//一些搜索代码。

您的意思是浏览器正在缓存它吗?一个简单的解决方案是包含唯一的querystring参数:

<script>
var obj;
    $.getJSON( 'obdatabase.json?d=' + (new Date().getTime()), function(obj) {  
        obj=obj;
    });
 // some code for search.
</script>

var-obj;
$.getJSON('obdatabase.json?d='+(new Date().getTime()),函数(obj){
obj=obj;
});
//一些搜索代码。

您的意思是浏览器正在缓存它吗?一个简单的解决方案是包含唯一的querystring参数:

<script>
var obj;
    $.getJSON( 'obdatabase.json?d=' + (new Date().getTime()), function(obj) {  
        obj=obj;
    });
 // some code for search.
</script>

var-obj;
$.getJSON('obdatabase.json?d='+(new Date().getTime()),函数(obj){
obj=obj;
});
//一些搜索代码。

如果您的代码再多一点就会有所帮助。
我猜json响应正在被缓存。
解决方法是将jQuery.ajax函数与数据类型“json”和cache false一起使用

$.ajax({
url:“obdatabase.json”,
数据类型:“json”,
缓存:false

});您的代码再多一点可能会有所帮助。
我猜json响应正在被缓存。
解决方法是将jQuery.ajax函数与数据类型“json”和cache false一起使用

$.ajax({
url:“obdatabase.json”,
数据类型:“json”,
缓存:false

});
将您的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>

var-obj;
$.getJSON('obdatabase.json')。完成(函数(数据){
console.log(data.responseText);
console.log(JSON.parse(data.responseText))//obj
})
//一些搜索代码。

将您的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>

var-obj;
$.getJSON('obdatabase.json')。完成(函数(数据){
console.log(data.responseText);
console.log(JSON.parse(data.responseText))//obj
})
//一些搜索代码。

@badbay浏览器正在缓存呼叫…因此,对于对同一地址的进一步呼叫,浏览器只需从缓存中提供数据…您可以通过添加一些随机字符串(此处为dateTime)绕过该缓存对于url,欺骗它认为它们是不同的url,这只会使浏览器将对该url的每次调用视为唯一的url,从而阻止它caching@badbye浏览器正在缓存该调用…因此,对于对同一地址的进一步调用,浏览器只需从缓存中提供数据…您可以通过添加一些随机字符串来绕过该调用(此处为dateTime)指向url,使其误以为它们是不同的url,这只会使浏览器将对该url的每次调用视为唯一的url,从而阻止其缓存