認識Ajax


Ajax的全名是Asynchronous JavaScript and XML,他是一種互動式網頁應用開發技術,可以提高網頁的互動性(Interactivity),速度(Speed),以及可用性(Usability)。

先別管這麼多了!趕快玩玩看吧!

  1. 開啟JS Bin: jsbin.com
  2. 匯入jquery函式庫
  3. 複製貼上以下的Code到JavaScript欄位
  4. 看看印出了些什麼東西
$.ajax({
  type: "GET",
  url: "http://opendata.cwb.gov.tw/opendata/DIV2/O-A0001-001.xml",
  dataType: "xml",
  error: function (e) {
    console.log('oh no');
  },
  success: function (e) {
    var data = $(e).find('location');
    var time = data.eq(0).find('time').text();
    var city = data.eq(0).find('parameter').eq(0).find('parameterValue').text();
    var town = data.eq(0).find('parameter').eq(2).find('parameterValue').text();
    console.log(time);
    console.log(city);
    console.log(town);
  }
});

記得安裝CORS Toggle,Chrome上的Ajax才能正常運做CORS

CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。
它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。 CORS講解影片

剖析Ajax

// Ajax的外觀
$.ajax({
    //要傳去伺服器的參數及內容

});
參數 說明
type 請求方式,POST/GET
url 指定要進行呼叫的位址
data 要傳送至Server的資料
dataType 預期Server傳回的資料類型,ex: xml, json
error 請求失敗時執行函式
success 請求成功時執行函式

其他補充:

// $.get是以GET方式實現Ajax請求
$.get(
    url,
    [data],
    [callback]
);
// $.post是以POST方式實現Ajax請求
$.post(
    url,
    [data],
    [callback],
    [type]
);
// $.getJSON是專門為Ajax獲取JSON數據而生的
$.getJSON(
    url,
    [data],
    [callback]
);

認識資料格式


什麼是JSON

JSON 是個用來儲存和傳送資料的純文字格式,JSON的格式非常容易閱讀,修改起來也非常方便。
直接來看一個例子吧!

{
  "orderID": 12345,
  "shopperName": "John Smith",
  "shopperEmail": "[email protected]",
  "contents": [
    {
      "productID": 34,
      "productName": "SuperWidget",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "WonderWidget",
      "quantity": 3
    }
  ],
  "orderCompleted": true
}

剖析JSON

物件可以用 { } 來寫入資料

陣列可以用 [ ] 來寫入資料

name / value 是成對的,中間透過 ( : ) 來區隔

瞭解更多:你不可不知道的JSON基本介紹

安裝JSONView,可以幫助你解析並排版JSON資料

什麼是XML

XML是一種標記式語言。比起HTML,XML的標籤是可以自行訂定的喔!
直接來看一個例子吧!

<object>
  <property>
    <key>orderID</key>
    <number>12345</number>
  </property>
  <property>
    <key>shopperName</key>
    <string>John Smith</string>
  </property>
  <property>
    <key>shopperEmail</key>
    <string>[email protected]</string>
  </property>
  <property>
    <key>contents</key>
    <array>
      <object>
        <property>
          <key>productID</key>
          <number>34</number>
        </property>
        <property>
          <key>productName</key>
          <string>SuperWidget</string>
        </property>
        <property>
          <key>quantity</key>
          <number>1</number>
        </property>        
      </object>
      <object>
        <property>
          <key>productID</key>
          <number>56</number>
        </property>
        <property>
          <key>productName</key>
          <string>WonderWidget</string>
        </property>
        <property>
          <key>quantity</key>
          <number>3</number>
        </property> 
      </object>
    </array>
  </property>
  <property>
    <key>orderCompleted</key>
    <boolean>true</boolean>
  </property>  
</object>

剖析XML

<標籤名>內容</標籤名>

results matching ""

    No results matching ""