午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

原生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ù)。通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。

XMLHttpRequest 對象

       XMLHttpRequest對象是ajax的基礎(chǔ),XMLHttpRequest 用于在后臺(tái)與服務(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)改變就會(huì)調(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請求一定要添加請求頭才行不然會(huì)報(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è)人資料

存檔

主站蜘蛛池模板: 久章草一区二区 | 麒麟色欧美影院在线播放 | 婷婷六月激情综合一区 | 人人啪日日观看在线 | 天美传媒在线观看免费完整版 | 国产精品爽黄69天堂A片 | 高清无码中文字幕影片 | 性xxx免费 | 免费观看成人毛片 | 精品国产露脸久久AV麻豆 | 成人18视频在线观看 | av视频在线免播放观看 | 小莹的性荡生活40章 | 果冻传媒2021一二三在线观看 | 日本无码欧美激情在线视频 | WWW婷婷AV久久久影片 | 国产高潮国产高潮久久久久久 | 青青青青草原国产免费 | 女人精69xxxxx | 99久久无码热高清精品 | 亚洲大片免费观看 | 被同桌摸出水来了好爽的视频 | 大胆国模一区二区三区伊人 | 伊人在线高清视频 | 一本道dvd久久综合高清免费 | 日本邪恶少女漫画大全 | 黄 色 网 站 免 费 涩涩屋 | 国产美女裸身网站免费观看视频 | 久久精品热线免费 | 女人久久WWW免费人成看片 | 99久久免费看少妇高潮A片 | 女人的选择hd | 大香网伊人久久综合观看 | 97se se| 国产乱人精品视频AV麻豆 | 久久99热这里只频精品6 | 国产精品高清在线观看地址 | 闺蜜撬开我的腿用黄瓜折磨我 | 丰满大爆乳波霸奶 | 大学生宿舍飞机china free | 色欲久久99精品久久久久久AV |