2017-06-13 8 views
0

私はD3.jsの初心者です。テストを行うためにノードとWebページにサーバーを作成しました。私はサーバー内のデータをコンパイルし、私はWebページのテーブルに表示したいと思います。だから、Webで次のD3の例が見つかりました。私は使用しようとしています。したがって、テストが実行されると、実際にうまく動作します。しかし、私が2回目のテストをしているときに、Webページを更新せずに取得したデータは2回読み込まれます。私が3回テストすると、3回ロードされます...それがどのように写真に見えるのですか?私は一度だけデータをロードしたいと思います。このため、テーブル(csvTable)が格納されているコンテナを空白にして、データ・マトリックスを.csvファイルに保存してからリフレッシュしようとしました。それにもかかわらず、今までそれは何も働いていませんでした。誰かが私を助けることができたら本当に感謝しています。は、一度csvファイルからD3.jsテーブルを表示します。

function doTable(){ 

clearBox("csvTable"); 

d3.text("data/data.csv", function(data) { 
      var parsedCSV = d3.csv.parseRows(data); 

      var container = d3.select('#csvTable') 
       .append("table") 

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

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

}

enter image description here

答えて

-1

このようなif文の中に全体d3.text()関数を囲むについてどう:

if (!d3.select('#table-id)){ 
    d3.text("data/data.csv", function(data) { 
     var parsedCSV = d3.csv.parseRows(data); 

     var container = d3.select('#csvTable') 
      .append("table") 
      .attr('id', 'table-id') 

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

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

私は、コードをテストしていませんが、これらの行に沿ったものが動作するはずです。

関連する問題