Highcharts实时数据更新不起作用

时间:2017-02-03 17:32:46

标签: javascript highcharts

我是js的新手,只需从官方网站复制,代码是:

<html>

<head>
<title>Charts using Socket.io and Highcharts</title>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js">    </script>
<script>
    $(function () {

        Highcharts.setOptions({
            global: {
                useUTC: false
            }
        });

        // Create the chart
        Highcharts.stockChart('container', {
            chart: {
                events: {
                    load: function () {

                        // set up the updating of the chart each second
                        var series = this.series[0];
                        setInterval(function () {
                            var x = (new Date()).getTime(), // current time
                                y = Math.round(Math.random() * 100);
                            series.addPoint([x, y], true, true);
                        }, 1000);
                    }
                }
            },

            rangeSelector: {
                buttons: [{
                    count: 1,
                    type: 'minute',
                    text: '1M'
                }, {
                    count: 5,
                    type: 'minute',
                    text: '5M'
                }, {
                    type: 'all',
                    text: 'All'
                }],
                inputEnabled: false,
                selected: 0
            },

            title: {
                text: 'Live random data'
            },

            exporting: {
                enabled: false
            },

            series: [{
                name: 'Random data',
                data: (function () {
                    // generate an array of random data
                    var data = [],
                        time = (new Date()).getTime(),
                        i;

                    for (i = -999; i <= 0; i += 1) {
                        data.push([
                            time + i * 1000,
                            Math.round(Math.random() * 100)
                        ]);
                    }
                    return data;
                }())
            }]
        });

    });
    </script>
</head>

<body>
    <div id="container" style="height: 400px; min-width: 310px"></div>
</body>

</html>

控制台告诉我'$'没有定义,我试图摆脱&#39;功能&#39;,得到highcharts错误#13。我在nodejs上运行它,代码在index.html文件中,没有其他js文件。

1 个答案:

答案 0 :(得分:0)

在当前脚本标记之前添加:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

检查一下:

https://jsfiddle.net/basmLukr/

注意:$(function () {..}是文档就绪事件的jQuery更短方法,因此首先需要包含jQuery。我认为Highcharts创建/更新应该在页面加载后调用,这就是为什么当你摆脱$(function () {..}“页面加载”功能时它不起作用。