2016-07-26 11 views
0

"data.csv"という名前のCSVデータをロードするためにD3JSライブラリを使用しています。ボタンをクリックすると、コンソールにデータの長さが出力されます。 私の問題は、ボタンの2つのアクション間で "data.csv"内のデータを変更すると、データが更新されないということです。D3JSデータのロードと更新

たとえば、私は1つのCSVに100のデータを持ち、もう1つに200のデータを持っています。まず、自分の100のデータCSVを自分のフォルダに入れ、 "読み取り"ボタンを押します。期待どおりの "データ長= 100"。その後、200のデータでCSVファイルを上書きし、もう一度ボタンを押すと、コンソールには同じデータ長(100)が表示されますが、自分のデータ変数は新しいファイルの新しいデータで更新されていません。

どのようにデータ更新の問題を解決できますか?

アンドリューのようにHTML

<button onclick="read_data()">Read</button> 

はJavaScript

function read_data(){ 
    Plotly.d3.csv("data.csv", function(error, data) { 
     console.log("Data length = " + data.length) 
    }) 
} 
+0

お使いのブラウザは、おそらくデータファイルをキャッシュしています。 ChromeでDevToolsを開いて、キャッシュを一時的に無効にすることができます。ネットワークにアクセスし、キャッシュを無効にするをクリックします。この作業のためにDevToolsを開いたままにする必要があります。 –

+0

あなたが正しいです、私のブラウザはデータファイルをキャッシュしていました。いくつかのコーディングで回避策がありますか?私はデータをロードする方法は標準ではないと思います。新しいデータを再ロードしたい場合、ファイル名を変更する必要がありますか? – oro777

答えて

1

は、ブラウザがファイルをキャッシュするかもしれないと指摘しました。たぶん、あなたは、たとえば、クエリパラメータを追加することができます。

function read_data(){ 
    Plotly.d3.csv("data.csv?”+(new Date()).getTime(), function(error, data) { 
     console.log("Data length = " + data.length) 
})} 
+0

ありがとうございました。私はクエリで正確ではない、それは特定の時間とファイル名を指定しますか? – oro777

+0

はい、エポックタイムをクエリパラメータとして追加します。 –

関連する問題