標籤:
指一種建立互動式網頁應用的網頁開發技術。
AJAX並非縮寫詞,而是由Jesse James Gaiiett創造的名詞。
不是指一種單一的技術,而是有機地利用了一系列相關的技術:
web標準( Standards-Based Presentation )XHTML+CSS的表示,
使用 DOM( Document Object Model )進行動態顯示及互動,
使用 XML 和 XSLT 進行資料交換及相關操作,
使用 XMLHttpRequest 進行非同步資料查詢、檢索.
AJAX優點
lAjax在本質上是一個瀏覽器端的技術lAjax技術之主要目的在於局部交換用戶端及伺服器間之資料l這個技術的主角XMLHttpRequest 的最主要特點,在於能夠不用重新載入整個版面來更新資料,也就是所謂的Refresh without Reload(輕重新整理)l與伺服器之間的溝通,完全是透過Javascript 來實行l使用XMLHttpRequest 本身傳送的資料量很小,所以反應會更快,也就讓網路程式更像一個傳統型應用程式lAJAX 就是運用Javascript 在後台悄悄幫你去跟伺服器要資料,最後再由Javascript 或DOM 來幫你呈現結果,因為所有動作都是由Javascript 代勞,所以省去了網頁重載的麻煩,使用者也感受不到等待的痛苦
1.GET方式
1.1設定參數
xhr.open("GET", "GetAreasByAjax.ashx?isAjax=1", true);
1.2GET方式請求可以設定瀏覽器不使用緩衝
xhr.setRequestHeader("If-Modified-Since","0");
1.3發送: xhr.send(null);//GET方式
2.POST方式:
1.1設定參數:xhr.open("POST", "GetAreasByAjax.aspx", true);
1.2添加要求標頭:xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
1.3發送:xhr.send("isAjax=1&na=123");//POST方式
非同步使用XMLHttpRequest對象
非同步使用XMLHttpRequest對象時,必須使用:onreadystatechange事件。
使用模式應該是:
1.建立該對象;-new2.設定readystatechange事件觸發一個回呼函數; -onreadystatechagne3.開啟請求;-open4.發送請求;-send
註:在回呼函數中檢查readyState屬性,看資料是否準備就緒(是否等於4)。
u如果沒有準備好,隔一段時間再次檢查。因為資料沒有下載完時,我們無法使用它的屬性和方法。u如果已經準備好,就繼續往下執行;lreadyState屬性
readyState屬性指出了XMLHttpRequest對象在發送/接收資料過程中所處的幾個狀態。XMLHttpRequest對象會經曆5種不同的狀態。
•0:未初始化。對象已經建立,但還未初始化,即還沒調用open方法;•1:已開啟。對象已經建立並初始化,但還未調用send方法;•2:已發送。已經調用send 方法,但該對象正在等待狀態代碼和頭的返回;•3:正在接收。已經接收了部分資料,但還不能使用該對象的屬性和方法,因為狀態和回應標頭不完整;•4:已載入。所有資料接收完畢lAJAX請求伺服器時如果伺服器出錯了怎麼辦?l編程常見錯誤•XMLHttpRequest大小寫不正確;•多寫了對圓括弧:
正確:xHRObject.onreadystatechange =getData;
錯誤:xHRObject.onreadystatechange =getData();
必須弄清楚,在JavaScript中:
•函數名後如果有圓括弧,意思就是將函數的傳回值賦給等號左邊的變數;•沒有圓括弧,是將函數本身賦給等號前的變數。
什麼是AJAX? AJAX:”Asynchronous JavaScript and XML”中文意思:非同步JavaScript和XML。