Ajax請求匯總(一)

來源:互聯網
上載者:User

標籤:內容   dom   ext   響應   app   顯示   迴圈   state   初始化   

 

剛開始結束Ajax請求的時候,那真的是迷迷糊糊,昏天暗地,通過學習的深入和翻閱各種資料、求助度娘,總結一下Ajax請求,與大家分享一下,希望能給學習Ajax的同學一些協助,廢話不多手,直接開始~~~

一、Ajax請求的原理

1.原理:在Ajax請求中,html頁面的中操作將通過Ajax引擎與伺服器端進行通訊,然後將返回的結果提交到用戶端頁面的Ajax引擎,再由Ajax引擎來決定將伺服器端返回資料插入到頁面的指定位置。從而實現無需重新整理頁面的http請求。 看圖:

2.Ajax請求的優點

 a.當然最大的優點就是,無需重新整理就可更新頁面 b.可以把原先伺服器端負擔的工作的轉移用戶端,利用用戶端的閑置資源進行處理,減輕伺服器和頻寬的負擔,節約空間和成本 c.Ajax沒有平台限制。Ajax把伺服器由原先的傳送內容轉變為傳輸資料,而資料格式可以為純文字和XML格式,這兩種格式沒有平台限制。 d.可以調用Xml等外部資料,進一步促進頁面的顯示和資料的分離

3.Ajax使用的技術

 a.XMLHttpRequest對象 b.XML c.JavaScript d.Css e.DOM

4.Ajax請求時效能的最佳化

 a.盡量使用局部變數,不要使用全域變數 b.最佳化for迴圈 c.盡量少使用eval,每次使用eval都會浪費大量時間 d.將DOM節點附加到文檔上 e.盡量減少使用點“.”號操作符的使用

二、不同方式的Ajax請求

1.原生js的ajax請求

  a.初始化XMLHttpRequest對象

    /* IE6以上的瀏覽器*/

    var http_request = new ActiveXObject("Msxml2.XMLHTTP") 或者: var http_request = new ActiveXObject("Microsoft.XMLHTTP")

    /* 非IE瀏覽器(firefox,Opera,Mozilla,Safari)*/    var http_request = new XMLHttpRequest()    考慮到瀏覽器的相容性,需要建立一個跨瀏覽器的XMLHttpRequest對象,如下:
        var http_request;        if (window.XMLHttpRequest) { //相容非IE瀏覽器            http_request = new XMLHttpRequest()        } else if (window.ActiveXObject) { //相容IE6以上的瀏覽器            try {                http_request = new ActiveXObject("Msxml2.XMLHTTP")            } catch (e) {                try {                    http_request = new ActiveXObject("Microsoft.XMLHTTP")                } catch (e) {}            }        }
  b.XMLHttpRequest對象的常用方法     ----建立新請求的方法        open()方法用於設定進行非同步請求目標的URL,要求方法以及其他參數資訊        open("methods","URL","asyncFlag")            methods:用於請求的指定類型,一般為POST或者GET            URL:用於指定的請求地址,可以用絕對位址和相對位址,並且可以傳遞查詢字串            asyncFlag:選擇性參數,用於指定請求方式,非同步請求為true,同步請求為false,預設為true     ----向伺服器發送請求的方法        send()方法用於向伺服器發送請求。如果請求聲明為非同步,該方法立即返回,否則將會等到接收到響應為止         send(content)            content:用於指定發送的資料,可以是DOM對象的執行個體,字串等,如果沒用參數,需要傳遞設定為null            舉個例子:                需要向伺服器發送一個沒有參數的請求,如下:                http_request.send(null)     ----佈建要求的HTTP頭的方法        setRequestHeader("header","value")            header:用於指定的HTTP頭            value:用於指定的HTTP頭的設定值            注意:setRequestHeader()方法調用需要在open()方法之後            例如:                http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded")     ----停止、放棄當前非同步請求的方法        abort()        例子:停止當前的非同步請求http_request.abort()    c.XMLHttpRequest對象的常用屬性         1.onreadystatechange:用於指定狀態改變時所觸發的事件處理器屬性,在Ajax中,每個狀態改變時都會觸發            這個事件處理器,通常會調用一個Javascript函數            http_request.onreadystatechange = function(){}         2.readystate:請求狀態的屬性            readystate屬性的屬性值的意義:                0:未初始化      1:正在載入    2:已載入     3:互動中     4:完成                在實際應用中,該屬性的經常用於判斷請求狀態,當請求狀態為4時,在判斷請求是否成功,如果成功,就開始處理返回結果                  3.responseText:擷取伺服器的字串響應的屬性            接收響應:var text = http_request.responseText         4.responseXML:擷取伺服器的XML響應的屬性            接收響應:var xmldoc = http_request.responseXML         5.status:返回伺服器的HTTP狀態代碼的屬性            格式:http_request.status            狀態代碼:                100:繼續發送請求       200:請求成功                202:請求被接受,但尚未成功    400:錯誤的請求                404:檔案未找到         408:請求逾時                500:內部伺服器錯誤      501:伺服器不支援當前請求所需要的某個功能              注意:status屬性只能在send()方法返回成功時,才能調用                  當請求完成之後:
                    if (http_request.readystate === 4) {                        if (http_request.status === 200) {                            alert("請求成功")                        } else {                            alert("請求失敗")                        }                    }

Ajax請求匯總(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.