2016-07-26 12 views
0

Ich verwende D3JS-Bibliothek, um eine CSV-Daten namens "data.csv" zu laden. Mit einem Klick auf den Button gebe ich auf der Konsole die Datenlänge aus. Mein Problem ist, dass wenn ich die Daten innerhalb "data.csv" zwischen zwei Aktionen auf der Schaltfläche ändern, werden die Daten nicht aktualisiert.D3JS Daten laden und aktualisieren

Zum Beispiel habe ich eine CSV mit 100 Daten und eine andere mit 200. Erstens habe ich meine 100 Daten CSV in meinem Ordner und drücken Sie die Schaltfläche "Lesen", kann ich auf der Konsole die Datenlänge überprüfen, ist es wie erwartet "Datenlänge = 100". Danach überschreibe ich die CSV-Datei mit den 200 Daten und drücke die Taste erneut, die Konsole zeigt immer noch die gleiche Datenlänge (100), meine Datenvariable wurde nicht mit den neuen Daten aus der neuen Datei aktualisiert.

Wie kann ich mein Datenaktualisierungsproblem lösen?

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

Ihr Browser wahrscheinlich die Datendatei wird das Caching. Sie könnten versuchen, den Cache vorübergehend zu deaktivieren (mit DevTools in Chrome geöffnet, zu Netzwerk gehen und auf Cache deaktivieren klicken). Sie müssen DevTools für diese Arbeit offen halten. –

+0

Sie haben Recht, mein Browser hat die Datendatei zwischengespeichert. Gibt es eine Arbeit mit etwas Codierung? Ich denke, dass die Art, wie ich Daten lade, nicht Standard ist. Wenn ich neue Daten neu laden möchte, sollte ich den Dateinamen ändern? – oro777

Antwort

1

Wie Andrew wies darauf hin, Browser, um die Datei-Caching werden könnten. Vielleicht könnten Sie Abfrageparameter hinzufügen, zum Beispiel:

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

Danke, es hat funktioniert. Ich bin nicht genau mit Abfrage, gibt es einen Dateinamen mit einer bestimmten Zeit? – oro777

+0

Ja, es würde Epoch Times als Abfrageparameter hinzufügen. –