• <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    高勁

      傳統(tǒng)方法的缺點(diǎn):

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

      什么是ajax

             ajax的出現(xiàn),剛好解決了傳統(tǒng)方法的缺陷。AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。

      XMLHttpRequest 對象

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

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

             1.創(chuàng)建XMLHTTPRequest對象
             2.使用open方法設(shè)置和服務(wù)器的交互信息
             3.設(shè)置發(fā)送的數(shù)據(jù),開始和服務(wù)器端交互
             4.注冊事件
             5.更新界面

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

      get請求:      

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

      post請求:

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

      為了方便使用,我們可以把他封裝進(jìn)方法里面,要用的時(shí)候,直接調(diào)用就好了

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

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

               }      

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

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

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

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

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

                      // 將 數(shù)據(jù) 讓 外面可以使用
                     // return ajax.responseText;

                     // 當(dāng) onreadystatechange 調(diào)用時(shí) 說明 數(shù)據(jù)回來了
                    // ajax.responseText;

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

      日歷

      鏈接

      個(gè)人資料

      存檔

      主站蜘蛛池模板: 在线精品国精品国产尤物| 亚洲精品熟女一区二区| 精品一卡2卡三卡4卡乱码精品视频| 国产草草影院ccyycom| 激情影院内射美女| 国产91在线播放| 无码AV中文字幕久久专区| 亚洲香蕉网久久综合影视| 久久精品无码免费不卡| 青青操国产| 国产精品导航一区二区| 97精品伊人久久久大香线蕉| 国产精品偷乱一区二区三区| 亚洲国产成人手机在线观看| 全球成人中文在线| 久久精品久久久久久噜噜| 亚洲午夜福利在线视频| 1313午夜精品理论片| 欧美人做人爱a全程免费| 国产成人一区二区三区免费观看| 伊人中文在线最新版天堂| 国产乱子轮xxx农村| 亚洲精品久久无码av片软件| 亚洲成a人片在线观看天堂无码不卡| 久久精品午夜福利| 天堂资源中文最新版在线一区| 国产第一色| 成人在线视频一区| 狠狠色噜噜狠狠狠7777奇米| 欧美xxxx做受欧美| 4hu44四虎www在线影院麻豆| 久久天天躁狠狠躁夜夜躁| 亚洲中文久久久精品无码| 69天堂人成无码免费视频| 国产精品青草久久福利不卡| 国产精品毛片av在线看| 美女把尿囗扒开让男人添| av天堂午夜精品一区二区三区| 久久精品国产www456c0m| 亚洲精品免费一二三区| 亚洲岛国av一区二区|