最近的作業提到了Ajax,花了點時間來研究一下
Ajax全名為Asynchronous JavaScript and XML,不過看完全名可能完全不知道在幹嘛!其實Ajax就是一種利用用javascript來對遠端server提出HTTP request,並得到server response所回傳的XML,早期很多的資料都是以XML檔來做儲存,不過Ajax中的X(XML)近年來已經慢慢被light weight的json所慢慢取代,所以講白一點Ajax的目的其實就是希望以非同步的方式來更新部分網頁的內容,這樣做的最大好處就是加快對使用者的回應
在篇網誌不會說明傳統的Ajax寫法,W3c的Tutorial寫的非常的詳細,可以參考,這裡會記錄用jQuery來轉寫Ajax,為什麼要用jQuery,對於程式設計師來說最重要的就是code好寫好懂好簡短,剛好jQuery的Ajax Template就有這種特性!
1. 首先記得要先include jQuery,當然可以下載下來放到自己的server上,但是好google不用嗎XD
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
2. Template
$.ajax({ url: "path", data: { data1: input1, data2: input2 }, type: "POST", success: function(result, status, xhr){ // do something after get data(result) } });
上方就是一個很簡單的jQuery Ajax template
- url: 代表client提出request的url
- data: 代表要送給server的相關資訊,在這裏data是以dictionary來表達
- type: 代表HTTP的方法,最常見的不外乎就是GET,POST
- success: 這是一個call back function,代表server成功回傳後接下來要做的動作
如果要比較完整一點的如下
$.ajax({ url: "path", data: { data1: input1, data2: input2 }, type:"POST", dataType:'text', success: function(msg){ alert(msg); }, error:function(xhr, ajaxOptions, thrownError){ alert(xhr.status); alert(thrownError); } });
上面為一個比較完整一點jQuery Template,可以看到多了
- dataType: 這個代表所接收到的資料格式,如果沒有指定的話通常會以HTTP header中的MIMI type自動選擇,常用的格式有
- xml
- html
- script(可執行的Javascript)
- json
- text
- error: 這裡代表發生error時的處理函數
沒有留言:
張貼留言