javascript - 无法看到java项目(jsp)中json文件的变化

标签 javascript java json jsp d3.js

我使用intellij IDEA制作一个带有jsp的Web项目。我从“customer.json”文件获取数据,当单击按钮时,我在后端更改此“customer.json”文件。然后我尝试再次获取数据,但它读取旧的 json 文件。我尝试使用以下代码禁用缓存:

  response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
  response.setHeader("Pragma","no-cache"); //HTTP 1.0
  response.setDateHeader ("Expires", 0); //prevents caching at the proxyserver

我还尝试添加具有不同名称的新 json 文件,例如“customer_1.jsp”,并从我的 jsp 中读取它,但这次我收到错误,表明没有名为“customer_1.jsp”的文件,即使我在其中看到它目录。问题是什么?我该如何解决?谢谢你的帮助?

注意:我正在使用 d3.js 的数据,并使用以下代码读取它:

d3.json("{path}/customer.json", function(error, json) {
   if (error) return console.warn(error);
   data = json;
   visualizeit();
});

注意:我在这里也写了带有coffescript版本的mu点击事件。(很容易理解):

 $(".node").live "dblclick",(e) ->
    selectedId = $(this).attr("id");
    loadData(selectedId)
    setTimeout(updateForSelected(selectedId),5000)

  loadData = (selectedId) ->
    $("#waitForUpdating").load 'DataForSelectedCustomer.jsp?id='+selectedId;

  updateForSelected = (selectedId) ->
    d3.json "customer.json", (json) ->
      myNetwork.updateData(json)

在“DataForSelectedCustomer.jsp”中,我调用写入 json 文件的 Java 函数。

最佳答案

这是因为 customer.json 文件是由您的浏览器下载的,并且它将始终使用本地副本。如果你想刷新文件,你必须使用 JQuery Ajax API 再次从后端获取它。或the Fetch API .

  1. 浏览器下载文件以显示网页
  2. 您在后端更改了 JSON 文件,浏览器无法读取该文件
  3. 您下载新的 JSON 文件并再次在前端使用它

关于javascript - 无法看到java项目(jsp)中json文件的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40125552/

相关文章:

json - 使用 Play 2.4 中其他属性的依赖关系验证 json 属性

javascript - 如何更改 JS 中的字体大小以适合其容器?

java - 如何使用作为另一个类的函数的参数访问的对象的函数?

javascript - 获取不同列中的隐藏输入[type=hidden]

java - 如何在java中结束inputstream.read

Java - Swing - JTable - 为选定行设置颜色,但不为单元格设置颜色

json - 为什么 json.Unmarshal 使用引用而不使用指针?

html - 如何根据 Google 跟踪代码管理器中的 div id 为 JSON LD 脚本触发触发器?

javascript - 有什么理由在 javascript 中从头到尾遍历数组吗?

javascript - 不使用表单验证动态创建的输入