我使用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 .
- 浏览器下载文件以显示网页
- 您在后端更改了 JSON 文件,浏览器无法读取该文件
- 您下载新的 JSON 文件并再次在前端使用它
关于javascript - 无法看到java项目(jsp)中json文件的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40125552/