Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何读取动态tsv文件d3js_Javascript_Caching_Servlets_D3.js_Tsv - Fatal编程技术网

Javascript 如何读取动态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),并

我必须加载一些存储在tsv文件中的数据,才能用d3js创建一个条形图。 我使用以下代码读取文件:

d3.tsv("data.tsv", function(error, data) {
每次单击调用servlet函数更新这些数据的按钮时,文件中的数据都会发生变化

问题是我无法获取更新数据,所以我被文件中存储的第一个数据卡住了

我避免了创建n个文件和读取这些不同文件的问题

但是我想用同一个文件。

给你

  • 单击获取新文件
  • 一旦确定已更新的文件已使用d3.tsv读取(您可以在此处使用callback),并在其中调用执行绘图的函数

  • 这是因为浏览器正在缓存文件,而不是实际重新加载文件。您可以通过向调用中添加一个不断更改的查询参数来避免这种情况,该参数除了阻止浏览器缓存之外,什么都不做:

    var counter = 0;
    // ...
    d3.tsv("data.tsv?foo=" + i++, function(error, data) {
      // ...
    });
    

    这就是我正在做的,但它不起作用。我总是得到旧的值。你能提供更多关于代码/设计部分的细节吗?如果可能的话,你能提供一个提琴吗。在你的建议下,行为发生了变化。现在,它根据五/六请求读取一次正确的值。我在调用读取函数之前添加了这个延迟:setTimeout(function(){update(xmlhttp.responseText);},3000);现在它起作用了