Highcharts实时动态数据展示

我们的结算系统,我也研究了很久了,开发了很久了。不过昨晚上我才看到我们的实时下单监控功能,觉得挺有意思的。其实几乎都是Highcharts以及前端实现的。这里就记录一下。

要想实现实时动态数据展示,那首先一点最重要的就是,肯定要不停地发ajax请求的,用来获取数据。先记录一些我在看文档和代码时学习到的。

1. 时间。如果你要向异步发送请求的api传递时间参数时,要注意时间参数。(我是用PHP开发),JS中获取当前时间,单位是毫秒。PHP时间戳是以秒为单位,所以要乘以1000.

 var x = (new Date()).getTime(); // current time

x = x*1000

2.从服务器传递过来的数据必须是json字符串。比如从php开发服务器传入了数组,那么在使用时,你必须用json_encode转为json字符串。

看一下代码:

      chart: {
            type: 'spline',
            animation: Highcharts.svg, // don't animate in old IE
            marginRight: 10,
            events: {
                load: function () {
                    // set up the updating of the chart each second
                    var series = this.series[0];
                    var y = 0;
                    setInterval(function () {
                        var x = (new Date()).getTime(); // current time
                        x = x - 1000 * 4;
                        $.get("/ajax/timestamp/" + x, function (data, status) {
                            series.addPoint([x, data], true, true);
                        });


                    }, 1000);
                }
            }
        },

上面这段代码是实现动态发送ajax请求的关键。

后面的1000是1000毫秒,表示每间隔1s执行一次该函数。这样就实现了实时请求数据,打到动态展示的结果。当然,这也是JS中setInternal函数的作用。

具体的例子可以看highcharts的官方文档: 实时动态数据 .

--------EOF---------
微信分享/微信扫码阅读