不知道各位有沒有聽說過SPA(Single Page Application),簡單來說就是一個網頁不需要做換頁的動作,用起來就像APP一樣。像是Gmail就是一個很棒的例子,在用Gmail網頁版的時候,大家可以發現Gmail在作換頁時並不會出現畫面全白的網頁讀取畫面,這在使用者體驗上會獲得良好的評價。

那麼為了做到這樣子的效果,我們就需要用到異步傳輸,也就是我們今天的主題Ajax。這裡我們會告訴各位Ajax它基礎的寫法

首先,在使用Ajax之前,我們需要的是資料,在政府開放資料共享平台有非常多的資料能夠讓大家去做使用

網址:https://data.gov.tw/

找到了資料來源之後我們需要先建立另接收資料的PHP檔,要做這個另外步驟的原因是瀏覽器有所謂的同源政策,所以我們的Ajax就不能夠拿取位於不同源頭的資料。接下來我們就建立一個Data.php來接收我們的資料。

  • header是為了告訴ˋ瀏覽器這裡顯示的資料是JSON格式且是UTF-8編碼
  • file_get_contents就是填入我們的資料來源

好了之 後可以檢查一下,如果是跟我一下用firefox的話就能看見下面的這個畫面

完成了之後就能開始這次的正題了,首先先匯入函式庫以及建立出基本架構

最後就是加上Ajax的部分

  • type:傳輸方式(GET/POST)
  • url:資料來源網址
  • data:傳輸資料型態(text,json,etc.)
  • success:執行成功後要做的事,在這裡我是利用append來幫我的table加上資料
  • beforeSend:執行送出前要做的事,在這裡我是讓console.log幫我發出訊息告訴我執行到哪邊了
  • complete:執行送出結束所做的事,在這裡我是讓console.log幫我發出訊息告訴我是不是傳輸結束了
  • error:執行發生錯誤時要做的事,在這裡我是讓console.log幫我發出訊息告訴我是不是error了

那寫完這些就能得出我們要的結果了

在這裡要記住,上面的只是個相對簡單的ajax練習,如果在練習完之後很有興趣的話,不妨在到網路上多找一些資訊,並多做一些實作。畢竟,做中學對大多數人都是很有效的。