我正在尝试显示收集的DynamoDB数据的实时折线图。 该图表包含3个数据范围(最近30天,最近7天,最后24小时)。选择范围时,将查询DynamoDB并创建ChartJS折线图。绘制初始图表后,将每5秒再次查询Dynamo,并使用新查询的结果更新图表。
出于某种原因,.update()调用正在向图表添加重复数据。我确信这是因为查询将提取一些与原始查询相同的数据,但我的印象是更新调用将重新呈现图表的数据,所以我不明白为什么会出现重复数据。
以下是相关代码:
ng-class="shouldIAddAClass()"
我已尝试过其他方法,例如每次都完全重绘图表,但这会导致网页上的闪烁,这很烦人。我不确定如何才能使其工作,以便图表仅使用新数据进行更新。
非常感谢任何帮助或建议。感谢。
答案 0 :(得分:1)
我编写了一个函数来检查已经存储在数组中的日期,现在它似乎运行良好。
这是功能:
var isinArr = function(str){
for(i=0; i<DateTimeArr.length; i++){
if(str === DateTimeArr[i]){
return true;
}
}
return false;
}
这是更新的chartUpdate()函数:
function chartUpdate(params){
console.log("Querying DynamoDB");
docClient.query(params, function(err, data){
if(err) console.log(err, err.stack);
else{
data.Items.forEach(function(item){
if(!isinArr(item.DateTime.toString())){
DateTimeArr.push(item.DateTime.toString());
o2readingArr.push(item.o2percent.toString());
}
});
}
});
}