d3.js 数据在文件中更改时不会刷新

问题描述 投票:0回答:3

我有 5 个 csv 文件 1.csv、2.csv.. 5.csv。我正在做的是我有一个下拉列表。当我从下拉列表中选择特定选项时,将加载并可视化特定文件。文件中的数据会定期更改。但问题是,当我选择特定文件时,数据可能以某种方式存储在缓存中。因此稍后不会对文件进行任何更改。即使我从目录中删除文件,可视化也会显示首次加载的数据。我什至尝试刷新页面。 我的代码如下:

selector.on("change", function(d){
    var selectedKey = keys[this.selectedIndex];
    d3.csv(selectedKey +".csv", function(data){
console.log(selectedKey +".txt");
    //var format = d3.time.format("%m/%d/%Y %H:%M:%S");
    var format = d3.time.format("%Y/%m/%d %H:%M:%S");
    data.forEach(function (e){
            e.dist = +e.dist;
            e.speed = +e.speed;
            e.lat=+e.lat;
            e.lon=+e.lon;               
            e.dd=format.parse(e.time);
            //console.log(e.dd);
    });
    dataset=data;
    var ndx = crossfilter(data);
    dimx = ndx.dimension(function(d) {return d.bearing});
    g = dimx.group(function(v){return v;});
    var output = g.top(Infinity);

}

    });

谁能帮我找出问题所在吗?选择 2.csv 后,图表第一次显示正常。然后,当我更改 2.csv 中的数据时,可视化会显示以前的数据。即使我从目录中删除 2.csv 文件,可视化也会显示以前的数据。即使刷新页面并重新选择密钥也会发生这种情况

javascript d3.js
3个回答
2
投票
d3.csv(selectedKey +".csv"+'?' + Math.floor(Math.random() * 1000), function(data){}

会解决问题


0
投票

这是我一直在寻找答案的问题。我有 d3 显示在表格上的 csv 数据。 csv 文件不断更新,但旧数据仍然显示,直到我刷新页面。我希望这个

d3.csv(selectedKey +".csv"+'?' + Math.floor(Math.random() * 1000), function(data){}
能够发挥作用。不过,我的会是这样的
d3.csv( "csvfile.csv"+'?' + Math.floor(Math.random() * 1000).then( function(data){})


0
投票

问题可能是浏览器缓存。尝试清除缓存或在隐身窗口中打开链接。

© www.soinside.com 2019 - 2024. All rights reserved.