Javascript 如何读取动态tsv文件d3js
我必须加载一些存储在tsv文件中的数据,才能用d3js创建一个条形图。 我使用以下代码读取文件:Javascript 如何读取动态tsv文件d3js,javascript,caching,servlets,d3.js,tsv,Javascript,Caching,Servlets,D3.js,Tsv,我必须加载一些存储在tsv文件中的数据,才能用d3js创建一个条形图。 我使用以下代码读取文件: d3.tsv("data.tsv", function(error, data) { 每次单击调用servlet函数更新这些数据的按钮时,文件中的数据都会发生变化 问题是我无法获取更新数据,所以我被文件中存储的第一个数据卡住了 我避免了创建n个文件和读取这些不同文件的问题 但是我想用同一个文件。给你 单击获取新文件 一旦确定已更新的文件已使用d3.tsv读取(您可以在此处使用callback),并
d3.tsv("data.tsv", function(error, data) {
每次单击调用servlet函数更新这些数据的按钮时,文件中的数据都会发生变化
问题是我无法获取更新数据,所以我被文件中存储的第一个数据卡住了
我避免了创建n个文件和读取这些不同文件的问题
但是我想用同一个文件。给你
这是因为浏览器正在缓存文件,而不是实际重新加载文件。您可以通过向调用中添加一个不断更改的查询参数来避免这种情况,该参数除了阻止浏览器缓存之外,什么都不做:
var counter = 0;
// ...
d3.tsv("data.tsv?foo=" + i++, function(error, data) {
// ...
});
这就是我正在做的,但它不起作用。我总是得到旧的值。你能提供更多关于代码/设计部分的细节吗?如果可能的话,你能提供一个提琴吗。在你的建议下,行为发生了变化。现在,它根据五/六请求读取一次正确的值。我在调用读取函数之前添加了这个延迟:setTimeout(function(){update(xmlhttp.responseText);},3000);现在它起作用了