• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      原生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.li-bodun.cn

      存檔

      主站蜘蛛池模板: 日韩中文精品亚洲第三区| 亚洲 日本 欧洲 欧美 视频| 调教在线播放黄| 丁香婷婷色| 免费观看精品视频999| 亚洲和欧洲一码二码三码| 久久香蕉国产线看观看式| 秋霞鲁丝片一区二区三区| 国产对白老熟女正在播放| 国产在线视频www色| 爆乳高潮喷水无码正在播放| 亚洲 欧美 激情 小说 另类 | 国产乱人伦AV在线麻豆A| 少妇的肉体aa片免费| 中文久久乱码一区二区| 日韩a无v码在线播放| 国产欧美精品一区aⅴ影院 | 中文字幕日韩精品国产| 欧美亚洲日韩在线在线影院| 图片区小说区av区| 性欧美牲交在线视频| 国产又爽又大又黄a片| 99精品成人片免费毛片无码| 国产成人精品无码播放| 精品国产一区二区三区性色| 蜜臀av久久国产午夜福利软件| 午夜DY888国产精品影院| 少妇人妻偷人精品无码视频| 亚洲国产欧美一区二区好看电影| 亚洲国产精品无码aaa片| 亚洲国产中文字幕在线视频综合 | 成人乱码一区二区三区av0| 国产人妻xxxx精品hd| 天堂资源在线| 国产精品亚洲五月天高清| 少妇又爽又刺激视频| 国产日产欧产精品精品| 九九99久久精品综合| 亚洲欧洲日产国码无码AV一| 久久人妻AV无码一区二区| 成人国产精品中文字幕|