<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                背景:知識在不斷的更新,學習新的技術是非常有必要的,這樣才能推陳出新,適應整個軟件界的發展。使得用戶的體驗度越來越高,更好的為人民服務。Ajax技術在一定的程度上能帶來更好的用戶體驗。 ### 一、Ajax Ajax,是 Asynchronous?JavaScript + XML(異步JavaScript和XML)的簡寫。這種技術能夠想服務器請求額外的數據而無須卸載頁面(即刷新),會帶來更好的用戶體驗。 Ajax 的核心是 JavaScript 對象 XMLHttpRequest。該對象在 Internet Explorer 5 中首次引入,它是一種支持異步請求的技術。簡而言之,XMLHttpRequest使您可以使用 JavaScript 向服務器提出請求并處理響應,而不阻塞用戶。 AJAX不是一種新的編程語言,而是一種用于創建更好更快以及交互性更強的Web應用程序的技術。 ### 二、GET請求與POST請求 GET請求 GET請求是最常見的請求類型,最常用于向服務器查詢某些信息。必要時,可以將查詢字符串參數追加到 URL的末尾,以便提交給服務器。 通過URL后的問號給服務器傳遞鍵值對數據,服務器接收到返回響應數據。特殊字符傳參產生的問題可以使用 encodeURIComponent()進行編碼處理,中文字符的返回及傳參,可以講頁面保存和設置為 utf-8格式即可。 ~~~ //一個通用的 URL提交函數 function addURLParam(url, name, value) { url += (url.indexOf('?') == -1 ? '?' : '&'); //判斷的 url是否有已有參數 url += encodeURIComponent(name) + '=' + encodeURIComponent(value); alert(url); return url; } ~~~ PS:當沒有 encodeURIComponent()方法時,在一些特殊字符比如“ &”,會出現錯誤導致無法獲取。 POST請求 POST請求可以包含非常多的數據,我們在使用表單提交的時候,很多就是使用的 POST傳輸方式。 而發送 POST請求的數據,不會跟在 URL的尾巴上,而是通過 send()方法向服務器提交數據。 一般來說, 向服務器發送 POST請求由于解析機制的原因, 需要進行特別的處理。 因為POST請求和 Web表單提交是不同的,需要使用 XHR來模仿表單提交。 ~~~ xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ~~~ GET請求與POST請求比較 從性能上來講 POST請求比 GET請求消耗更多一些, 用相同數據比較, GET最多比 POST快兩倍。上一篇[《【JavaScript】(6)——JavaScript與XPath、JSON交互》](http://blog.csdn.net/helijie92902/article/details/50196345)中的的JSON也可以使用 Ajax來回調訪問。** ~~~ var url = 'demo.json?rand=' + Math.random(); var box = JSON.parse(xhr.responseText); ~~~ ### 三、JavaScript與Ajax 因為 Ajax使用起來比較麻煩,主要就是參數問題,比如到底使用 GET還是 POST;到底是使用同步還是異步等等,我們需要用JavaScript封裝一個Ajax函數,來方便我們調用。 ~~~ //封裝Ajax function ajax(obj) { var xhr = new createXHR(); obj.url = obj.url + '?rand=' + Math.random(); obj.data = params(obj.data); if (obj.method === 'get') obj.url = obj.url.indexOf('?') == -1 ? obj.url + '?' + obj.data : obj.url + '&' + obj.data; if (obj.async === true) { xhr.onreadystatechange = function () { if(xhr.readyState==4)callback(); }; } xhr.open(obj.method,obj.url,obj.async); if(obj.method==='post'){ xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(obj.data); }else{ xhr.send(null); } if(obj.async===false){ callback(); } function callback(){ if(xhr.status==200){ obj.success(xhr.responseText); //回調 }else{ alert('數據返回失敗!狀態代碼: '+xhr.status+',狀態信息: '+xhr.statusText); } } } //調用ajax addEvent(document,'click',function(){ //IE6需要重寫addEvent ajax({ method:'get', url:'demo.php', data:{ 'name':'Lee', 'age':100 }, success:function(text){ alert(text); }, async:true }); }); //名值對編碼 function params(data){ var arr=[]; for(var i in data){ arr.push(encodeURIComponent(i)+'='+encodeURIComponent(data[i])); } return arr.join('&'); } ~~~ ### 四、學習心得 1、即使再好的工具也有它的缺點,但是可以借助外界的力量讓自己變得更加完美。人生就像一張心電圖,只有高低起伏才代表活著,而成了平線之后,就代表死亡了。所以只有起起伏伏的人生才是完整的人生。 2、封裝 Ajax并不是一開始就形成以上的形態,需要經過多次變化而成。調試錯誤也是一樣的,很多錯誤并不是一下子就能調出來的,多試試,不同的方法有著不一樣的收獲。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看