解决方案 »

  1.   

    function drawYearGraph(year,clrFlg){
        if (year != null) {
            $("#years_y").val(year);
        }
        $.ajax({
            url: '<%= url_for :action => :load_slide %>',
            cache: false,
            data: {page_id: <%= @page.id %>, yeardate:$('#years_y').val()+'/01/01'},
            success: function(data) {
                for (var t = 0; t < data['month_sold_energy'].length; t++) {
                    data['month_sold_energy'][t][0] = Date.parse(data['month_sold_energy'][t][0]);
                    if (data['month_sold_energy'][t][1] != null) {
                        data['month_sold_energy'][t][1]=Number(data['month_sold_energy'][t][1]);
                    }
                }
                for (var t = 0; t < data['month_bought_energy'].length; t++) {
                    data['month_bought_energy'][t][0] = Date.parse(data['month_bought_energy'][t][0]);
                    if (data['month_bought_energy'][t][1]!=null) {
                        data['month_bought_energy'][t][1]=Number(data['month_bought_energy'][t][1]);
                    }
                }
                for (var t = 0; t < data['month_outside_temperature_avg'].length; t++) {
                    data['month_outside_temperature_avg'][t][0] = Date.parse(data['month_outside_temperature_avg'][t][0]);
                    if (data['month_outside_temperature_avg'][t][1]!=null) {
                        data['month_outside_temperature_avg'][t][1]=Number(data['month_outside_temperature_avg'][t][1]);
                    }
                }
                for (var t = 0; t < data['month_irradiance'].length; t++) {
                    data['month_irradiance'][t][0] = Date.parse(data['month_irradiance'][t][0]);
                    if (data['month_irradiance'][t][1]!=null) {
                        data['month_irradiance'][t][1]=Number(data['month_irradiance'][t][1]);
                    }
                }
                for (var t = 0; t < data['month_module_temperature_avg'].length; t++) {
                    data['month_module_temperature_avg'][t][0] = Date.parse(data['month_module_temperature_avg'][t][0]);
                    if (data['month_module_temperature_avg'][t][1]!=null) {
                        data['month_module_temperature_avg'][t][1]=Number(data['month_module_temperature_avg'][t][1]);
                    }
                }
                
                if (null != slide_year_chart) {
                    slide_year_chart.destroy();
                }
                
                slide_year_createChart(data['month_sold_energy'],data['month_bought_energy'],data['month_irradiance'],
                data['month_outside_temperature_avg'],data['month_module_temperature_avg']);
                
                var series = slide_year_chart.series;
                    alert(series.length);
                for (var t = 0; t < series.length; t++) {alert(series.length);
       if (clrFlg=='false'){//alert(t-10);
                      if ($('#legendItem').val().split(",")[t] == 'false') {//alert($('#legendItem').val().split(",")[t]);
                        series[t].hide();
                        array[t] = series[t].visible;
                        }
                      }
                   else 
                   { series[t].show();//alert(t+10);
                    array[t] = series[t].visible;
                   }
                }
                $('#legendItem').val(array);
                storeSession();
                return true;
                
            }
        });
    }
    //下面是调用的画图的函数function slide_year_createChart(chart_data1,chart_data2,chart_data3,chart_data4,chart_data5) {
        slide_year_chart = new Highcharts.Chart({
            chart: {
                renderTo: 'div-year-chart',
                width: 1160,
                height: 550
            },
    ....        series: [
                {
                    yAxis: 0,
                    type: 'column',
                    color: 'blue',
                    name: '买电力量(kWh)',
                    data: chart_data1,
                    lineHeight:13
                },
                {
                    yAxis: 0,
                    type: 'column',
                    color: '#FFC0CB',
                    name: '电力量(kWh)',
                    data:  chart_data2,
                    lineHeight:13
                },
                {
                    yAxis: 1,
                    type: 'line',
                    color: '#CD853F',
                    name: '日射量(Wh/㎡)',
                    data: chart_data3,
                    lineHeight:13
                },
                {
                    yAxis: 2,
                    type: 'line',
                    color: 'green',
                    name: '外温度(℃)',
                    data: chart_data4,
                    lineHeight:13
                },
                {
                    yAxis: 2,
                    type: 'line',
                    color: '#871F78',
                    name: '温度(℃)',
                    data: chart_data5,
                    lineHeight:13
                }
            ]
        });
    }
      

  2.   

    最后在ajax外加了个 setTimeout( function() {$.ajax({
    ......   })},1000);
    才能出来正确结果,但是这样如果网速特别慢听说还是不好的,所以又不这样做了,换了别的方法