2014-03-18 104 views
0

我想知道是否有一種方法延緩加載頁面加載Highcharts的圖表。目前我的圖表在頁面打開時加載,導致我的代碼崩潰,因爲腳本沒有足夠的時間爲圖表獲取數據。延遲加載Highcharts'圖表

有誰知道如何解決這個問題?

+0

如果加載從外部數據源,你應該在的功能,做到這一點的回調初始化圖表。 –

+0

如果我這樣做,然後我得到錯誤「TypeError:$(...)。highcharts是不是一個函數」Highcharts肯定是正確初始化,因爲我看到它以前工作。 – benandrews54

+0

請複製您的示例作爲現場演示。 –

回答

0

有幾種方法可以做到這一點。一個是當收到數據初始化圖表(使用jQuery交例如,數據看起來像[5,6,8,11]):

$(function(){ 
    $.post('test_highchart.asp', {actn:'load-data'}, function(dat){ 
     $('#chart').highcharts({ 
      chart: { 
       type: 'bar' 
      }, 
      title: { 
       text: 'Delayed Loading' 
      }, 
      xAxis: { 
       title: { 
        text: 'Values' 
       } 
      }, 
      series:[{ 
       name: 'value', 
       data: dat 
      }] 
     }); 
    }, 'json'); 
}); 

或者,可以初始化負載圖表然後泵送數據到當你得到它的圖表(數據再次貌似[5,6,8,11]):

$(function(){ 
    window.chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'chart', 
      type: 'bar' 
     }, 
     title: { 
      text: 'Delayed Loading' 
     }, 
     xAxis: { 
      title: { 
       text: 'Values' 
      } 
     }, 
     series:[{ 
      name: 'values', 
      id: 'series1', 
      data: [] 
     }] 
    }); 

    // load data: 
    $.post('test_highchart.asp', {actn:'load-data'}, function(dat){ 
     $.each(dat, function (val) { 
      // add points to chart: 
      window.chart.get('series1').addPoint(val); 
     }); 
    }, 'json'); 
}); 

檢查http://www.highcharts.com/docs/working-with-data/live-data瞭解詳情。

歡呼