【问题标题】:HTML to grab new data on refreshHTML 在刷新时获取新数据
【发布时间】:2015-05-29 14:52:02
【问题描述】:

我有一个带有 JavaScript 的 HTML 页面,它读取一个 JSON 文件并根据这个 JSON 文件在屏幕上呈现一些数据。我需要定期(每 10 秒)刷新此页面,以便捕获 JSON 文件中的更改。我正在做以下事情:

<meta http-equiv="refresh" content="2" />

我还尝试在我的 Java 脚本中使用以下代码来执行此操作:

<script type="text/javascript">
setTimeout("location.reload(true);",2000);

这两个版本都可以正常工作并定期刷新页面。但是,每当发生刷新时,它都不会从我的 JSON 文件中读取新数据。它仅在我使用“刷新”按钮手动刷新页面时读取数据。有什么办法可以强制它在刷新时读取新数据?

【问题讨论】:

  • 您是否考虑过有一个外部页面从 csv 中获取数据并对其进行 ajax 调用? (类似于 API)
  • 你可以设置 CSV 文件的过期标题吗?如果是,请将其设置为过去。你也可以使用your.url/file.csv?r=[insert_current_timestamp]
  • 对AJAX不太熟悉..我该怎么做..
  • 你熟悉php吗?
  • 谢谢你的回答,伙计们。它是一个包含我输入的 Json 文件,而不是 csv。

标签: javascript html refresh


【解决方案1】:

如果您可以使用 JQuery 创建带有此 html 的第二个页面,并将 url var 设置为您当前访问的页面。如果您点击新页面,它应该每 10 秒刷新一次数据。

<div id="div1">
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
  var url = //path to your page that is currently working
  reloadData = function() {
    $.ajax({url: url, success: function(result){
        $("#div1").html(result); //takes the content of your url and throws it into div1
    }});
  }
  window.setInterval(reloadData, 10000);//every 10 seconds
});
</script>

【讨论】:

  • 刚刚在 ajax 调用中添加了 url var...所以如果您已经复制了代码,请进行更新
  • 这行得通,但它也没有从我的 JSON 文件中捕获新内容。它一直显示旧数据,直到我手动刷新。每次刷新完成时,我都需要它来获取新数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 2015-03-29
  • 2019-03-07
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多