粗大的内捧猛烈进出小视频,日本成人精品视频一区,在线播放亚洲成人av,精品人妻少妇嫩草av专区,亚洲AV永久久久久久久浪潮,性导航app精品视频,九九热精品免费视频,一本一本大道香蕉久在线播放

        原生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.xintaizi.com

        存檔