【问题标题】:how to read dynamic tsv file d3js如何读取动态 tsv 文件 d3js
【发布时间】:2014-02-14 12:24:23
【问题描述】:

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

d3.tsv("data.tsv", function(error, data) {

每次单击调用 servlet 函数以更新这些数据的按钮时,文件内的数据都会发生变化。

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

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

但我想使用同一个文件。

【问题讨论】:

    标签: javascript caching servlets d3.js tsv


    【解决方案1】:

    所以你来了,

    1. 点击获取新文件
    2. 一旦你确定你已经使用 d3.tsv 读取了 updatedFile(你可以在此处使用 callback)并在其中调用执行绘图的函数

    【讨论】:

    • 这是我正在做的,但它不起作用。我总是得到旧的价值观。
    • 你能否提供更多关于代码/设计部分的详细信息,或者如果可能的话
    【解决方案2】:

    这是因为您的浏览器正在缓存文件而不是实际重新加载它。你可以通过在调用中添加一个不断变化的查询参数来避免这种情况,这不会做任何事情,但会阻止浏览器缓存:

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

    【讨论】:

    • 谢谢拉尔斯。在您的建议下,行为发生了变化。现在它在五/六请求时读取一次正确的值。我在调用读取函数之前添加了这个延迟: setTimeout(function(){update(xmlhttp.responseText);},3000);现在可以了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多