ajax學習

開始學習ajax,內容很少,跟着菜鳥教程做點筆記~(http://www.runoob.com/ajax/ajax-tutorial.html

1、什麼是ajax

ajax=異步JavaScript和XML,它用於創建快速動態網頁。通過在後臺與服務器進行少量數據交換,ajax實現了不重載整個頁面情況下對一個頁面的某部分進行更新

2、ajax實例代碼(先看看代碼,後面進行代碼分析)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function loadXMLDoc()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
        //  IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // 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","/try/ajax/ajax_info.txt",true);
    xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>使用 AJAX 修改該文本內容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改內容</button>

</body>
</html>

3、ajax的工作原理

其原理簡單來說就是通過XmlHttpRequest對象來向服務器發異步請求,然後用js操作dom進行更新。其中的關鍵異步就是從服務器獲得請求數據(這一關鍵的核心就是XMLHttpRequest)

創建XmlHttpRequest對象
所有現代瀏覽器均內建XMLHttpRequest對象,老版可能不支持。因此我們要如下代碼進行創建:


var xmlhttp;
if (window.XMLHttpRequest)
{
    //  IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼
    xmlhttp=new XMLHttpRequest();
}
else
{
    // IE6, IE5 瀏覽器執行代碼
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

4、向服務器發送請求

如果要向服務器發送請求,我們使用XMLHttpRequest的open()和send()方法:

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

這裏寫圖片描述

這裏就寫下第三個參數 Async:
如果要想實現異步,第三個參數必須設置爲true。且當其處於true時候,請規定在響應處 onreadeystatechange 事件中的就緒狀態時執行的函數:


xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
xmlhttp.send();

5、服務器響應
如需獲得來自服務器的響應,新需要用XMLHttpRequest對象的responseText或responseXML屬性
這裏寫圖片描述

如果來自服務器的響應並非XML,就用responseText屬性。它返回字符串形式的響應

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

6、onreadystatechange事件
當請求被髮送到服務器時,我們需要執行一些基於響應的任務。每當readyState改變時,就會觸發onreadystatechange事件。readyState屬性存有XMLHttpRequest的狀態信息。下面是XMLHttpRequest對象的三個重要屬性:
這裏寫圖片描述

發佈了49 篇原創文章 · 獲贊 57 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章