【问题标题】:JavaScript code to read the latest values from a json file that keeps getting updated every few seconds用于从 json 文件中读取最新值的 JavaScript 代码,该文件每隔几秒就会更新一次
【发布时间】:2022-01-26 03:51:54
【问题描述】:

我对 JavaScript 非常陌生,并试图将 .json 文件中的最新值显示到 HTML 页面中,该文件每 10 秒更新一次。我也每 10 秒读取一次文件,但我没有从文件中获取最新值。我得到的值早了 50 到 60 秒。

我尝试在 chrome 中禁用浏览器缓存,但仍然是同样的问题。有人可以帮忙吗?

我读取json文件的JavaScript代码如下:

function readJsonFile(callback) {
 var request = new XMLHttpRequest();
 request.open('GET', 'http://localhost:8080/PersonalProject/filename.json');
 request.onload = function() {
  if(request.status>=100 && request.status<=100) {
   //perform some operation
   callback(request.responseText);
  }
  else{
   //perform some operation
   callback('FAILED');
  }
 };
 request.onerror = function() {
  console.error('Connection error');
 };
 request.send();
}


setInterval(function(){
 readJsonFile(function(stat){
  console.log(stat);
 });
}, 10000);

【问题讨论】:

  • 您是否尝试检查网络呼叫和网络选项卡中的响应。
  • 是的,网络呼叫在状态 200 下似乎很好
  • 响应,它们是否更新了值?
  • 不,响应也不是更新的值。
  • 问题可能出在缓存上。

标签: javascript html json ajax


【解决方案1】:

您可以在请求中添加时间戳作为参数以避免导航器缓存:

...
let ms = Date.now();
request.open('GET', 'http://localhost:8080/PersonalProject/filename.json?ms' + ms);
...

每当我需要从 html 标头请求更新 js 和 css 文件时,我都会这样做,并且它可以工作

【讨论】:

    猜你喜欢
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2012-10-30
    • 2011-12-07
    • 1970-01-01
    • 2017-12-10
    • 2019-07-19
    相关资源
    最近更新 更多