2016-05-12 14 views
0

CSVファイルから生成されたD3.jsテーブルがあり、CSVが変更されたときに値を更新する方法を理解しようとしています。 B)10秒ごとに。Refresh D3で5秒ごとにテーブルが生成される

問題は、ブラウザのコンソールで「更新」が定義されていないエラーが発生し続けることです。

誰かが私のエラーを報告することができますか?私のsetTimeoutは動作していないようです。それはおそらく何かシンプルですが、私はjavascriptについて知識がありません。

d3.text("http://somesite/somefile.csv", function refresh(data) { 

      var containerclear = d3.select("body").select("table").remove(); 

      var parsedCSV = d3.csv.parseRows(data); 

      var container = d3.select("body") 
       .append("table") 

       .selectAll("tr") 
        .data(parsedCSV).enter() 
        .append("tr") 

       .selectAll("td") 
        .data(function(d) { return d; }).enter() 
        .append("td") 
        .text(function(d) { return d; }); 

     }); 
     setTimeout(function() { 
        refresh(data); 
        }, 5000); 

答えて

1

あなたはとあなたのリフレッシュ機能を見つけることができないのこの関数の中:この外そのような

d3.text("http://somesite/somefile.csv", function refresh(data) { 

移動:

function refresh(data) { 

       var containerclear = d3.select("body").select("table").remove(); 

       var parsedCSV = d3.csv.parseRows(data); 

       var container = d3.select("body") 
        .append("table") 

        .selectAll("tr") 
         .data(parsedCSV).enter() 
         .append("tr") 

        .selectAll("td") 
         .data(function(d) { return d; }).enter() 
         .append("td") 
         .text(function(d) { return d; }); 

      } 

そして、ここでそれを呼び出す:

d3.text("http://somesite/somefile.csv", function(data){ refresh(data)}); //using the somefile.csv 

そしてここに:

setTimeout(function() { 
        refresh(data); //using a different dataset 
        }, 5000); 
+0

ありがとうございます!私は理解していません。タイムアウト関数が作成された3番目のビットに、リフレッシュ(データ)。最初の関数を呼び出すのですか?私は、今度は 'データ'のために、未定義のエラーが再び発生するので尋ねます。 – Lareous

+0

ああ待って、私はsetTimeout setIntervalを使用しているので、それだと思う。コマンドを変更した後、これは完全に機能しました。ありがとう! – Lareous

関連する問題