2016-07-26 3 views
0

Я использую библиотеку D3JS для загрузки CSV-данных с именем «data.csv». Нажимая на кнопку, я выводю на консоль длину данных. Моя проблема заключается в том, что если я изменил данные внутри «data.csv» между двумя действиями на кнопке, данные не будут обновляться.Загрузка и обновление данных D3JS

Например, у меня есть один CSV с 100 данными, а другой с 200. Сначала я поставил 100 своих CSV-данных в свою папку и нажал кнопку «Читать», я могу проверить на консоли длину данных, это как ожидалось, «Длина данных = 100». После этого я перезаписываю CSV-файл 200 данными и снова нажимаю кнопку, консоль все еще отображает одну и ту же длину данных (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

Ваш браузер, скорее всего, кэширует файл данных. Вы можете временно отключить кеш (при открытии DevTools в Chrome перейдите в раздел «Сеть» и нажмите «Отключить кеш»). Вам нужно будет оставить 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

Да, в качестве параметра запроса будет добавлено время эпохи. –