无需重新绘制整个图表即可更新任何图表中的股票价格

Rya*_*n D 2 javascript php ajax jquery anychart

我正在使用非常好的 Anychart 股票烛台图表,为了更新图表,我使用了一个setInterval函数,但它重新绘制了整个图表,这很糟糕,因为如果我正在缩放或某些东西,它会明显地重置并重新开始。有没有一种方法可以每隔几秒更新一次数据库中的最后价格而无需重新绘制整个图表?

当前setInterval加载图表的功能:

setInterval(function() {
  $.get('chart_data.php', function(data) {
     $(".main_cont").replaceWith(data);
  });
}, 2000);
Run Code Online (Sandbox Code Playgroud)

我的图表数据变量:

$chart_data .= "{'x':'".$open_time."','open': ".$open.",'high': ".$high.",'low': ".$low.",'close': ".$close."},";
Run Code Online (Sandbox Code Playgroud)

chart_data.php 文件:

setInterval(function() {
  $.get('chart_data.php', function(data) {
     $(".main_cont").replaceWith(data);
  });
}, 2000);
Run Code Online (Sandbox Code Playgroud)

我想setInterval用只替换数据库中的最后一个价格数据来向上或向下移动蜡烛的东西替换该函数,如果添加了新记录,则绘制新蜡烛。我有更新蜡烛图或添加新蜡烛图的脚本,如果不重新绘制整个图表,我就无法找到一种方法。

kmo*_*ser 5

您可以使用操作数据的函数来更改图表。

您可以使用 JS 每两秒获取新数据,并用于addData()替换现有数据。如果这仍然导致完全刷新,则必须比较两个数组之间差异以确定当前数据和新获取的数据之间的差异,并使用文档中描述的insert,deleteupdate方法仅更改更改的数据。但是,这仍可能导致完全刷新。

您将使用 AJAX(来自 JS)从 PHP 脚本请求更新的数据。数据返回到您的 JS。通过jQuery.getJSON以 JSON 格式发送/接收数据可能是最简单的。