九九色综合_性69交片免费看_亚洲一区二区三区久久精品_精品一久久_欧美一级黄视频_污免费网站

原生js的ajax請求

2018-5-29    周周

傳統方法的缺點:

      傳統的web交互是用戶觸發一個http請求服務器,然后服務器收到之后,在做出響應到用戶,并且返回一個新的頁面,,每當服務器處理客戶端提交的請求時,客戶都只能空閑等待,并且哪怕只是一次很小的交互、只需從服務器端得到很簡單的一個數據,都要返回一個完整的HTML頁,而用戶每次都要浪費時間和帶寬去重新讀取整個頁面。這個做法浪費了許多帶寬,由于每次應用的交互都需要向服務器發送請求,應用的響應時間就依賴于服務器的響應時間。這導致了用戶界面的響應比本地應用慢得多。

什么是ajax?

       ajax的出現,剛好解決了傳統方法的缺陷。AJAX 是一種用于創建快速動態網頁的技術。通過在后臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

XMLHttpRequest 對象

       XMLHttpRequest對象是ajax的基礎,XMLHttpRequest 用于在后臺與服務器交換數據。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。目前所有瀏覽器都支持XMLHttpRequest。

方法
描述
abort()
停止當前請求
getAllResponseHeaders() 
 把HTTP請求的所有響應首部作為鍵/值對返回
getResponseHeader("header")
返回指定首部的串值
open("method","URL",[asyncFlag],["userName"],["password"])
建立對服務器的調用。method參數可以是GET、POST或PUT。url參數可以是相對URL或絕對URL。這個方法還包括3個可選的參數,是否異步,用戶名,密碼
send(content)
向服務器發送請求
setRequestHeader("header", "value") 
把指定首部設置為所提供的值。在設置任何首部之前必須先調用open()。設置header并和請求一起發送 ('post'方法一定要 )
五步使用法:

       1.創建XMLHTTPRequest對象
       2.使用open方法設置和服務器的交互信息
       3.設置發送的數據,開始和服務器端交互
       4.注冊事件
       5.更新界面

下面給大家列出get請求和post請求的例子

get請求:      

       //步驟一:創建異步對象
       var ajax = new XMLHttpRequest();
       //步驟二:設置請求的url參數,參數一是請求的類型,參數二是請求的url,可以帶參數,動態的傳遞參數starName到服務端
       ajax.open('get','getStar.php?starName='+name);
       //步驟三:發送請求
        ajax.send();
       //步驟四:注冊事件 onreadystatechange 狀態改變就會調用
        ajax.onreadystatechange = function () {
       if (ajax.readyState==4 &&ajax.status==200) {
       //步驟五 如果能夠進到這個判斷 說明 數據 完美的回來了,并且請求的頁面是存在的
       console.log(xml.responseText);//輸入相應的內容
         }
        } 

post請求:

       //創建異步對象  
       var xhr = new XMLHttpRequest();
       //設置請求的類型及url
       //post請求一定要添加請求頭才行不然會報錯
       xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
       xhr.open('post', '02.post.php' );
       //發送請求
       xhr.send('name=fox&age=18');
       xhr.onreadystatechange = function () {
       // 這步為判斷服務器是否正確響應
       if (xhr.readyState == 4 && xhr.status == 200) {
              console.log(xhr.responseText);
             }
        };    

為了方便使用,我們可以把他封裝進方法里面,要用的時候,直接調用就好了。

       function ajax_method(url,data,method,success) {
       // 異步對象
       var ajax = new XMLHttpRequest();

      // get 跟post  需要分別寫不同的代碼
      if (method=='get') {
          // get請求
          if (data) {
              // 如果有值
              url+='?';
              url+=data;
          }else{

         }      

       // 設置 方法 以及 url
            ajax.open(method,url);

           // send即可
           ajax.send();
        }else{
             // post請求
             // post請求 url 是不需要改變
             ajax.open(method,url);

            // 需要設置請求報文
           ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");

           // 判斷data send發送數據
          if (data) {
            // 如果有值 從send發送
                ajax.send(data);
          }else{
               // 木有值 直接發送即可
              ajax.send();
            }
         }     

       // 注冊事件
       ajax.onreadystatechange = function () {
       // 在事件中 獲取數據 并修改界面顯示
            if (ajax.readyState==4&&ajax.status==200) {
                // console.log(ajax.responseText);

                // 將 數據 讓 外面可以使用
               // return ajax.responseText;

               // 當 onreadystatechange 調用時 說明 數據回來了
              // ajax.responseText;

              // 如果說 外面可以傳入一個 function 作為參數 success
              success(ajax.responseText);
             }
         }
      }

日歷

鏈接

個人資料

藍藍設計的小編 http://www.gyxygd.cn

存檔

主站蜘蛛池模板: 国产视频久 | 日本久久网 | 色伊人 | 国产精品明星裸体写真集 | 日韩高清成人毛片不卡 | 欧美日韩一区二区视频免费看 | 国产免费观看a大片的网站 国产特级淫片 | 欧美视屏在线观看 | 日韩一区二区三区在线 | 亚洲一区在线免费观看 | 亚洲国产精品热久久2022 | 国产97精品久久久天天A片 | 日韩视频欧美视频 | 国产一区二区三区亚洲 | 欧美三级在线视频 | 午夜视频 | 自拍偷拍亚洲视频 | 国产成人咱精品视频免费网站 | 奇米777四色影视在线播放 | 看亚洲a级一级毛片 | 嘿嘿视频在线观看 成人 | 日本免费播放一区二区三区 | 精品久久国产 | 欧美午夜性春猛xxxx | 国产精品一二三四区 | 国产福利视频奶水在线 | 在线91| 久久久久久久久久久96av | 欧美综合在线视频 | 国产精品久久久久久婷婷天堂 | 欧美视频精品 | 鲁一鲁一鲁一鲁一曰综合网 | 国产精品网站在线观看 | 99精品视频免费观看 | 国产一级在线 | www.99tv| 中文字幕在线免费 | 国产一级免费在线观看 | 亚洲午夜一区 | 日韩第一| 欧美五级在线观看视频播放 |