[jQuery]Ajax的應用

1. load()方法

load()方法是jQuery中最爲簡單和常用的Ajax方法,能載入遠程HTML代碼並插入DOM中,它的結構爲:

load(url[, data][, callback])

url參數表示請求HTML頁面的URL地址,data參數表示發送至服務器的key/value數據,callback參數表示請求完成時的回調函數,例如:

$(function(){
  $("#send").click(function(){
    $("#resText").load("test.html");
  });
});

load()方法的URL參數的語法結構爲"url selector",比如只需加載test.html頁面中class爲"para"的內容,例如:

$("#resText").load("test.html .para");

load()方法的傳遞方式根據參數data來自動指定,如果沒有參數傳遞,則採用GET方式,反之則自動轉換爲POST方式,例如:

$("#resText").load("test.php", {name:"rain", age:"22"}, function(){
});

load()方法的回調函數有3個參數,分別代表請求返回的內容、請求狀態和XMLHttpRequest對象,例如:

$("#resText").load("test.html", function(
  responseText, textStatus, XMLHttpRequest)) {
}


2. $.get()方法和$.post()方法

load()方法通常用來從Web服務器上獲取靜態的數據文件,如果需要傳遞一些參數給服務器上的頁面,那麼可以使用$.get()或$.post()方法。

$.get()方法使用GET方式來進行異步請求,它的結構爲:

$.get(url[, data][, callback][, type])

url參數代表請求的HTML頁的URL地址,data參數代表發送至服務器的key/value數據會作爲QueryString附加到請求URL中,callback參數代表載入成功時回調函數,type參數代表服務器端返回內容的格式,包括xml、html、script、josn、text和_default,例如:

$("#send").click(function(){
  $.get("get1.php", {
        username: $("#username").val(),
        content: $("#content").val()
  }, callback);
});

$.get()方法的回調函數只有兩個參數,例如:

function(data, textStatus) {
}

data參數代表請求返回的內容,textStatus參數代表請求狀態,而且回調函數只有當數據成功返回後才被調用,這與load()方法不同。

$.post()方法與$.get()方法的結構和使用方法相同。


3. $.getScript()方法和$.getJson()方法

有時候在頁面初次加載時獲取所需的全部JavaScript文件是沒有必要的,jQuery提供了$.getScript()方法來直接加載.js文件,與加載一個HTML片段一樣簡單方法,例如:

$(function(){
  $("#send").click(function(){
    $.getScript("test.js");
  });
});

與其他Ajax方法一樣,$.getScript()方法也有回調函數,它會在JavaScript文件成功載入後運行。

$.getJSON()方法用於加載JSON文件,與$.getScript()方法的用法相同,例如:

$(function(){
  $("#send").click(function(){
    $.getJSON("test.josn");
  });
});


4. $.ajax()方法

$.ajax()方法是jQuery最底層的Ajax實現,它的結構爲:

$.ajax(options)

該方法只有1個參數,但在這個對象裏包含了$.ajax()方法所需的請求設置以及回調函數等信息,參數以key/value的形式存在,所有參數都是可選的,常見的參數如下:

參數名稱
類型說明
urlString發送請求的地址。
typeString請求方式(GET或POST),默認爲GET。
timeoutNumber設置請求超時時間(毫秒)。
dataObject或String發送到服務器的數據。
dataTypeString預期服務器返回的數據類型。
beforeSendFunction發送請求前可以修改XMLHttpRequest對象的函數。
completeFunction請求完成後調用的回調函數。
successFunction請求成功後調用的回調函數。
errorFunction請求失敗時被調用的函數。
globalBoolean默認爲true,表示是否觸發全局Ajax事件。


5. Ajax全局事件

通過jQuery提供的一些自定義全局函數,能夠爲各種 與Ajax相關的事件註冊回調函數。例如當Ajax請求開始時,會觸發ajaxStart()方法的回調函數,當Ajax請求結束時,會觸發ajaxStop()方法的回調函數,這些方法都是全局方法,因此無論創建它們的代碼位於何處,只要有Ajax請求發生時,就會觸發它們,例如:

$("#loading").ajaxStart(function(){
  $(this).show();
});
$("#loading").ajaxStop(function(){
  $(this).hide();
});

jQuery的Ajax全局事件還有幾個方法,也可以在使用Ajax方法的過程中爲其帶來方便,如下表:

方法名稱說明
ajaxComplete(callback)Ajax請求完成時執行的函數。
ajaxError(callback)Ajax請求發生錯誤時執行的函數。
ajaxSend(callback)Ajax請求發送前執行的函數。
ajaxSuccess(callback)Ajax請求成功時執行的函數。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章