AJAX即“Asynchronous JavaScript and XML”(非同步JavaScript和XML),Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支援非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞使用者。
AJAX優點:
AJAX不是一種新的程式設計語言,而是一種用於建立更好更快以及互動性更強的 Web 應用程式的技術。通過這個對象,您的 JavaScript 可在不重載頁面的情況與Web伺服器交換資料。AJAX 在瀏覽器與 Web 伺服器之間使用非同步資料轉送(HTTP 請求),這樣就可使網頁從伺服器請求少量的資訊,而不是整個頁面。AJAX 可使網際網路應用程式更小、更快,更友好。AJAX 是一種獨立於 Web 伺服器軟體的瀏覽器技術。
AJAX缺點:
它會破壞瀏覽器後退按鈕的正常行為。在動態更新頁面的情況下,使用者無法回到前一個頁面狀態,這是因為瀏覽器僅能記下記錄中的靜態頁面。
AJAX用例:
Google 通過其 GoogleSuggest 使 AJAX 變得流行起來。Google Suggest使用 AJAX 創造出動態性極強的 web介面:當您在Google的搜尋方塊輸入關鍵字時,JavaScript 會把這些字元發送到伺服器,然後伺服器會返回一個搜尋建議的列表。
AJAX狀態值和狀態代碼
AJAX狀態值是指,運行AJAX所經曆過的幾種狀態,無論訪問是否成功都將響應的步驟,可以理解成為AJAX運行步驟。使用ajax.readyState獲得。(由數字1~4單位元字組成)。AJAX狀態代碼是指,無論AJAX訪問是否成功,由HTTP協議根據所提交的資訊,伺服器所返回的HTTP頭資訊代碼,該資訊使用ajax.status所獲得;這就是我們在使用AJAX時為什麼採用下面的方式判斷所獲得的資訊是否正確的原因。
if(ajax.readyState == 4 && ajax.status== 200) { ..... }
AJAX運行步驟與狀態值說明(我們大多數採用“4”進行判斷)
0 - (未初始化)還沒有調用send()方法
1 - (載入)已調用send()方法,正在發送請求
2 - (載入完成)send()方法執行完成,
3 - (互動)正在解析響應內容
4 - (完成)響應內容解析完成,可以在用戶端調用了
AJAX狀態代碼說明(列舉最常用的幾個)
200——交易成功
404——沒有發現檔案、查詢或URl
500——伺服器產生內部錯誤
505——伺服器不支援或拒絕支要求標頭中指定的HTTP版本
AJAX 對象的建立
<script type="text/javascript">function loadXMLDoc(){var xmlhttp;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }xmlhttp.open("GET","http://localhost:8887/jq/css/lamf.css",true);xmlhttp.send();}</script>