创建图表后,在javascript中使用超时时,Highcharts不会呈现图表

时间:2013-03-19 07:54:59

标签: javascript highcharts

我有一个必须定期刷新的页面(每15分钟一次)。该页面包含使用Highcharts创建的多个图表。

当页面加载后,我通过Ajax读取图表和其他变量信息。每个图表有几个调用服务器,一个用于状态信息。 (我把它减少到只有一张图表进行测试)。

在Ajax调用函数结束时,我设置了一个超时时间,在十五分钟内调用相同的函数:

userId = '1';

function loadStatus()
{
    var graphdata = $.ajax({
         url: "statusgraph.php",
         global: false,
         type: "POST",
         dataType: "json",
         data: {user: userId, targetdiv: 'statuschart'},
         success: function(data) {
         }
    }).responseText;
    var graph = JSON.parse(graphdata);
    var tgraph = new Highcharts.Chart(graph.chart);

    var statusinfo = $.ajax({
         url: "statusinfo.php",
         global: false,
         type: "POST",
         dataType: "html",
         data: {user: userId},
         success: function(data) {
         }
    }).responseText;
    $("#statusinfo").html(statusinfo);

   // works fine if the following lines are commented out

    var delay = 15*60*1000; // 15 minutes
    window.setTimeout(function(){
        loadStatus();
    }, delay);
}

结果是图表将获得标题和轴,但实际图表不会呈现。

如果我等待超时触发,状态信息会更新并且图表会重新绘制,但仍然不会绘制条形图。

如果我注释掉setTimeout命令,那么图表就会完美呈现。

0 个答案:

没有答案