Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Java jquery ajax调用时浏览器上显示的缓存数据_Java_Jquery_Ajax - Fatal编程技术网

Java jquery ajax调用时浏览器上显示的缓存数据

Java jquery ajax调用时浏览器上显示的缓存数据,java,jquery,ajax,Java,Jquery,Ajax,我有以下用jquery编写的ajax调用: 它以json格式从控制器获取连续响应,并通过设置值(在下面的代码中没有)将其显示在屏幕上 我每半秒钟就从控制器得到一次数据。 但有时它会在几秒钟内显示以前的状态数据。 我跟踪了cache:false,在ajax调用中,增加和减少了间隔时间,但仍然存在问题。 有什么建议吗?呈现旧数据的原因:浏览器努力让您的web体验更轻松、更快。为此,它们甚至缓存请求的响应,以便再次调用ame页面。他们将其显示为本地副本,而不是再次转到服务器。但有时这会成为一个问题。

我有以下用jquery编写的ajax调用: 它以json格式从控制器获取连续响应,并通过设置值(在下面的代码中没有)将其显示在屏幕上

我每半秒钟就从控制器得到一次数据。 但有时它会在几秒钟内显示以前的状态数据。 我跟踪了cache:false,在ajax调用中,增加和减少了间隔时间,但仍然存在问题。
有什么建议吗?

呈现旧数据的原因:

浏览器努力让您的web体验更轻松、更快。为此,它们甚至缓存请求的响应,以便再次调用ame页面。他们将其显示为本地副本,而不是再次转到服务器。但有时这会成为一个问题。

解决方案: 尝试在url的末尾附加一个唯一的请求参数。 因此,如果您要访问url
(http://something.com/data),
尝试将其更改为

  http://something.com/data?someUniqueThing 
独特之处:在发送请求之前生成一个随机数,并将其附加到url。 因此,您的ajax调用将变成:

 $(function() {
      $(".master_status").hide();
           setInterval(
              function() {
     $.ajax({
     type : "Get",
     url : "getDeviceInfo.htm?someUniqueThing",
     success : function(response) {
       if(response != null){

       }
     } ,
error : function(e) {
    }
});
}, 500);

}
它不会让浏览器缓存您的请求。 为什么?
因为每一秒的请求最后都会有一个唯一的ID。浏览器将其视为一个新请求,但在服务器端,它不会产生任何副作用。

这是IE中众所周知的问题。由于您使用的是
jquery
,所以您可以在
$调用中使用cache属性。更多信息,请参阅jquery。

我是为Firefox而不是为IE这样做的。您是否尝试过缓存属性?Aman arora:我尝试过您的方法,但仍然存在问题。$(function(){$(.master_status”).hide();setInterval(function(){$.ajax({type:“Get”,url:“getDeviceInfo.htm?”+random(),成功:函数(响应){if(响应!=null){}},错误:函数(e){}};},500);}@Swapnillwalivkar它工作得很好。我为它创建了一个原型。你能告诉我getDeviceInfo.htm中有什么吗?我的意思是,getDeviceInfo.htm发生了什么变化?阿曼:我解决了,问题不在于缓存数据。它在控制器端。谢谢你的回复
 $(function() {
      $(".master_status").hide();
           setInterval(
              function() {
     $.ajax({
     type : "Get",
     url : "getDeviceInfo.htm?someUniqueThing",
     success : function(response) {
       if(response != null){

       }
     } ,
error : function(e) {
    }
});
}, 500);

}