粗談對(duì)ajax的理解

ajax:
 Asynchronous JavaScript and XML
 異步JavaScript和XML技術(shù)
 Asynchronous:
 JavaScript:XMLHttpRequest
 XML:實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)和交換 ----- JSON
 特點(diǎn):
 AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的藝術(shù),在不重新加載整個(gè)頁(yè)面的情況下。
 不重新加載整個(gè)頁(yè)面的情況下實(shí)現(xiàn)頁(yè)面局部?jī)?nèi)容的刷新(無(wú)刷新技術(shù)--局部刷新)
 有效利用帶寬

 不利于SEO

ajax的使用有四個(gè)步驟:

    a.創(chuàng)建核心對(duì)象:

        var xhr = new XMLHttpRequest();

    b.準(zhǔn)備建立連接

        xhr.open(method,url,async);

                method--發(fā)起請(qǐng)求的方法(POST|GET)

                url--發(fā)起請(qǐng)求的目標(biāo)地址

                async--是否異步處理

    c.發(fā)送請(qǐng)求

        xhr.send();

    d.處理響應(yīng)

        xhr.onreadystatechange = function(){}

ajax中常見(jiàn)的屬性:

xhr.readyState:就緒狀態(tài)碼,存有 XMLHttpRequest 的狀態(tài)信息,(請(qǐng)求到達(dá)哪個(gè)階段)
 0 -- 請(qǐng)求未初始化
 1 -- 建立連接
 2 -- 接收到請(qǐng)求
 3 -- 請(qǐng)求處理過(guò)程中
 4 -- 請(qǐng)求處理完畢,響應(yīng)就緒
xhr.status:HTTP狀態(tài)碼
 1xx:消息
 2xx:成功 200-OK
 3xx:重定向
 4xx:客戶端錯(cuò)誤
 5xx:服務(wù)器端錯(cuò)誤

xhr.responseText:響應(yīng)文本


如果需要像 HTML 表單那樣 POST 數(shù)據(jù),請(qǐng)使用 setRequestHeader() 來(lái)添加 HTTP 頭。然后在 send() 方法中規(guī)定您希望發(fā)送的數(shù)據(jù):

    xml.open("POST","ajax_test.asp",true);
    xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xml.send("fname=Bill&lname=Gates");


歡迎關(guān)注微信公眾號(hào):猴哥說(shuō)前端