Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实时Flot图表不使用JSON_Javascript_Json_Flot_Real Time Updates - Fatal编程技术网

Javascript 实时Flot图表不使用JSON

Javascript 实时Flot图表不使用JSON,javascript,json,flot,real-time-updates,Javascript,Json,Flot,Real Time Updates,我使用此处给出的实时图形: 我试图用JSON文件中的输入值替换随机数学生成代码。它画了一张空白的图表。无法解决问题,因为它在逻辑上看起来是正确的。请帮忙 这是便签: <script type="text/javascript"> $(function() { var check; // We use an inline data source in the example, usually data would // be fetched from a serve

我使用此处给出的实时图形:

我试图用JSON文件中的输入值替换随机数学生成代码。它画了一张空白的图表。无法解决问题,因为它在逻辑上看起来是正确的。请帮忙

这是便签:

<script type="text/javascript">

$(function() {

var check;
    // We use an inline data source in the example, usually data would
    // be fetched from a server

    var dat = [];
        //totalPoints = 300;

    function getRandomData() {
        //alert("fff");
        if (dat.length > 0)
            dat = dat.slice(1);

        // Do a random walk

        //while (dat.length < totalPoints) {

            //var prev = dat.length > 0 ? dat[dat.length - 1] : 50,
            //  y = prev + Math.random() * 10 - 5;

            //if (y < 0) {
            //  y = 0;
            //} else if (y > 100) {
            //  y = 100;
            //}

            //dat.push(y);

        $.getJSON('data_3.json', function(data) {
        alert(data+"i m here");
                for (var i in data.nums) {
                    output = data.nums[i];
                    dat.push(output);
                    }
        });

        // Zip the generated y values with the x values

        var res = [];
        for (var i = 0; i < dat.length; ++i) {
            res.push([i, dat[i]]);

        }

        return res;

    }

    // Set up the control widget

    var updateInterval = 30;
    $("#updateInterval").val(updateInterval).change(function () {
        var v = $(this).val();
        if (v && !isNaN(+v)) {
            updateInterval = +v;
            if (updateInterval < 1) {
                updateInterval = 1;
            } else if (updateInterval > 2000) {
                updateInterval = 2000;
            }
            $(this).val("" + updateInterval);
        }
    });

    var plot = $.plot("#placeholder", [ getRandomData() ], {
        series: {
            shadowSize: 0   // Drawing is faster without shadows
        },
        yaxis: {
            min: 0,
            max: 100
        },
        xaxis: {
            show: false
        }
    });

    function update() {

        plot.setData([getRandomData()]);

        // Since the axes don't change, we don't need to call plot.setupGrid()

        plot.draw();
        setTimeout(update, updateInterval);
    }

    update();

    // Add the Flot version string to the footer

    $("#footer").prepend("Flot " + $.plot.version + " &ndash; ");
});

</script> 

我认为问题在于您异步获取数据,但是继续编写代码,就好像数据已经存在一样

当您进入
getRandomData
时,您将(几乎)删除所有点。然后使用
$.getJSON
异步获取新数据。您尝试填充
res
,但是
$的结果可能还不存在

填充
res
进行检查时插入断点/调试器

请不要通过删除此代码来清空
dat
变量

if (dat.length > 0)
    dat = dat.slice(1);

在提出新问题之前,请先搜索现有问题;这已经被问了好几次了。@DNS可能存在类似的问题,可能不是每次我接受你的建议并在“dat”数组和“res”数组中添加断点时都会遇到相同的问题。阵列仅同步填充。然而,我刚刚注意到我得到一个错误“$.plot不是一个函数”。对此我们能做些什么?这就是没有绘制图形的可能原因吗?您在flot之前添加了jQuery插件吗?如果不是,我相信你应该在flot插件之前添加。
if (dat.length > 0)
    dat = dat.slice(1);