天天看點

axaj

AJAX(Asynchronous Javascript And XML)

1.什麼是AJAX:

     是異步的javaScript And Xml,與伺服器進行異步的資料互動,傳輸資料可以為XML,也可以為

     文本檔案,或者JSON格式的檔案。

2.最大的特點:

     不用重新整理整個頁面,就可以使頁面實作局部重新整理,通過JavaScript來控制頁面的元素。

     與伺服器進行互動。

3.同步和異步:

     同步互動:當用戶端向服務端發送請求之後,需要等待伺服器響應結束之後,才可以發送第二

               個請求。

     異步互動:當用戶端向伺服器發送請求之後,不需要等待伺服器響應結束之後,就可以發送第二

               個請求。

4.ajax優點和缺點

     優點:

      AJAX使用Javascript技術向伺服器發送異步請求;

      AJAX無須重新整理整個頁面;

      因為伺服器響應内容不再是整個頁面,而是頁面中的局部,是以AJAX性能高;

     缺點:

      AJAX并不适合所有場景,很多時候還是要使用同步互動;

      AJAX雖然提高了使用者體驗,但無形中向伺服器發送的請求次數增多了,導緻伺服器壓力增大;

      因為AJAX是在浏覽器中使用Javascript技術完成的,是以還需要處理浏覽器相容性問題;

5.ajax實作步驟(四步):

      1.得到XMLHttpRequest,不同的浏覽器建立的方式是不一樣的:

        大多數浏覽器:var xmlHttp = new XMLHttpRequest();

        IE6:  var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

        IE5.5(更早):  var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

      2.打開連接配接: xmlHttp.open("","",bool);

        打開與伺服器的連接配接,裡面有三個參數:

        1.送出方式:GET 或者 POST;

        2.伺服器URL: 請求的伺服器位置,GET在URL後面加個?,?号後面都是參數

        3.為布爾類型:true/false ,如果為true代表異步請求。

        例如:xmlHttp.open("GET","AjaxDemo1?userName=lipeng",true);//true代表異步請求

      3.發送請求:xmlHttp.send(null):

        發送資料到伺服器:

        參數:代表請求體裡面的内容,如果是GET,由于GET沒有請求體,是以給null,如果不給,

              可能造成部分浏覽器出現錯誤。

              如果是POST:需要給定指定的參數:例如xmlHttp.send("userName=lipeng");

      4.監聽從伺服器傳送過來的資料  0,1,2,3,4五種狀态都可以監聽到

        xmlHttp對象的五種狀态:

            > 0狀态:剛建立,還沒有調用open()方法; 

            > 1狀态:請求開始:調用了open()方法,但還沒有調用send()方法

            > 2狀态:調用完了send()方法了;

            > 3狀态:伺服器已經開始響應,但不表示響應結束了!

            > 4狀态:伺服器響應結束!(通常我們隻關心這個狀态!!!)

            通過xmlHttp.readyState 得到狀态碼

        伺服器的響應碼:

            200 ok 成功

            404 通路不到資源

            500 伺服器出現錯誤

            通過xmlHttp.status 得到伺服器響應碼

         我們一般隻關心伺服器是否結束和響應碼是否成功

         if(xmlHttp.readyState==4 && xmlHttp.status==200){}

         等到伺服器傳送過來的資料:

            得到文本檔案:

                 xmlHttp.responseText;

            得到XML格式的檔案:

                 xmlHttp.responseXML;

常用Jquery操作ajax請求,ajaxfileupload上傳檔案(http://blog.csdn.net/qiantujava/article/details/37934225)。

繼續閱讀