2013-11-15 20 views
1

我試圖通過嘗試示例學習JavaScript,但放棄了,因爲我無法理解事件處理和回調的想法。瞭解javascript事件處理和ajax請求

這是我想解決的問題。 1.我有一個圖表(highcharts.js) 2.我從服務器 3的Javascript期望數據將使得向服務器的請求的數據點 4.數據必須被附加到圖表

我該如何做到這一點?你有沒有可以推薦的書或文章?我的困惑主要是,回調如何更新全局對象,從而導致elemetns更新?

+0

嘗試閱讀這對DOM事件的概述http://coding.smashingmagazine.com/2013/11/12/an-introduction-to-dom-events/ – Ollie

+0

HTTP: //learn.jquery.com/ajax/ *「我的困惑主要是,回調函數如何更新全局對象並導致元素刷新?」*嗯,您只需將邏輯放在回調函數內。回調只是一個正常的功能。但是,不是你明確地*調用它,而是應用程序的其他部分在它認爲合適的時候調用它(例如,當接收到Ajax請求的響應時)。 –

回答

1

With jQuery您可以使用調用$ .get()從服務器獲取數據。我不知道,如果你正在使用一個API或只是一個CSV文件,所以用CSV通話可能是這樣的:

$.get('/url/to/file.csv', function (data) { 
    $('#container').highcharts({ 
     data: { 
      csv: data 
     }, 
     title : "Some title", 
     // etc. 
}); 

我不知道的是,你所要求的東西。我留下了一個link to ajax example,可以幫助你。

1
  1. 包括highcharts.js和所需的js文件在你的HTML/JSP/PHP頁面
  2. 服務器應該返回XML或JSON數據(需要在highcharts中顯示)到客戶端上的請求。在這裏,響應頭文件很重要。

    application/json 
    text/xml 
    
  3. 使用jQuery的$。阿賈克斯()函數從服務器獲取數據(XML或JSON格式)在highcharts

    xAxis: { 
         categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
          'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
        } 
    
    
    series: [{ 
         name: 'Tokyo', 
         data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] 
        }, { 
         name: 'New York', 
         data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5] 
        }, { 
         name: 'Berlin', 
         data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0] 
        }, { 
         name: 'London', 
         data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 
        }] 
    
  4. 綁定highcharts指定下列值一個div容器在頁面加載/任何其他事件

    $(document).ready(function(){ 
        $('#container').highcharts({ 
         .... 
        }); 
    }); 
    

    確保網頁都有集裝箱

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

這就是所有

+0

如何動態添加容器? – Boolean

+0

你可以用**。append()**方法做到這一點。什麼樣的變量決定容器的數量?你是否從數據庫中讀取它?假設你知道此變量也可能是類似的東西: '變種num_containers = 5;' '爲(VAR I = 0; I

';' ' $(「#list_containers」)。append(html);' '}'' – newpatriks

+0

jquery的append()方法可以幫助您動態添加任何元素。 .attr()方法可以幫助您設置/取消設置任何元素的屬性。將div元素添加到網頁後,您可能會再次將highcharts綁定到相同的頁面。 –