tbwshc

          AJAX的學習與理解 .

          1>:今天重新回到對AJAX的認識,首先從AJAX的由來說起,由于感覺自己才疏學淺,

                我感覺只有了解了WEB的發展歷史,我們才能更好地理解并運用AJAX。

          2>:其實AJAX最大的應用就是我們要理解XMLHttpRequest這個對象。XMLHttpRequest可以提供不重新加載頁面的情況下更新網頁,在頁面加載后在客戶端向服務器請數 據, 在  頁面加載后在服務器端接受數據,在后臺向客戶端發送數據。XMLHttpRequest 對象提供了對 HTTP 協議的完全的訪問,包括做出 POST 和 HEAD 請求以及普通的 GET 請求的能力。XMLHttpRequest 可以同步或異步返回 Web 服務器的響應,并且能以文本或者一個 DOM 文檔形式返回內容。

          3>:我們如何創建一個XMLHttpRequest對象呢?

               首先我們要知道XMLHttpRequest對象開始時有微軟開發的一個基于IE5,IE6的一個插件,所以他在IE瀏覽器中肯定有自己的創建方式,IE中把他實現成一個ActiveX對象,但其他瀏覽器如果也想使用  XMLHttpRequest對象,就必須依靠JAVASCRIPT創建本地對象。我們在使用時不需要判斷瀏覽器的類型,只需要看瀏覽器提供對ActiveX的支持。

          下面就是XMLHttpRequest的創建方式:

          [javascript] view plaincopyprint?
          01.function createXHR() 
          02.{ 
          03. if(window.ActiveXObject) 
          04. { 
          05.  xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
          06. } 
          07. else if(window.XMLHttpRequest) 
          08. { 
          09.  xmlHttpRequest=new XMLHttpRequest(); 
          10. } 
          11. if(null==xmlHttpRequest) 
          12. {  
          13.  alert("瀏覽器不支持"); 
          14. } 
          15.} 
           function createXHR()
           {
            if(window.ActiveXObject)
            {
             xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if(window.XMLHttpRequest)
            {
             xmlHttpRequest=new XMLHttpRequest();
            }
            if(null==xmlHttpRequest)
            {
             alert("瀏覽器不支持");
            }
           }4>:介紹XMLHttpRequest的常用屬性、方法:

          百度其實是個好東西,我沒必要復制粘貼:大家可以參考http://baike.baidu.com/view/1105115.htm

          5>:XMLHttpRequest的應用:

          其實要理解AJAX并學會運用我們只要掌握三方面內容,第一就是XMLHttpRequest對象的創建。第二就是如何從表單獲取值并傳到服務器。第三就是如何從后臺獲取數據顯示在前臺。大家想想AJAX的應用是不是就是圍繞這三方面。

          下面我們來簡單說一下如何從表單獲取值的問題:其實只要稍微了解點JavaScript的熱你都知道我們DOM文檔模型,通過操縱文檔對象模型中對象的屬性并調用其方法,可以使腳本按照一定的方式顯示Web頁并與用戶的動作進行交互。

          我們常用的就是document.getElementById("id").value.來獲取網頁中的數據。其他的大家用到就百度。

          我們獲取到值之后就是把這個值傳給后臺:這里我們一般采用get:方式提交,采用url傳參。通過調用:xmlHttpRequest.open("get","url?paramater="+value,true);

          最后就是如何從后臺獲取值傳到前臺顯示:這里是通過xmlHttpRequest.responseText(返回一個字符串)xmlHttpRequest.responseXML返回一個XML文件。

          我們可以通過解析這兩種值插入到頁面中:通常我們用到的顯示在htbml中方式是:通過document.getElementById("id").value=xmlHttpRequest.responseText;

          或者document.getElementById("id").innerHTML=xmlHttpRequest.responseText;

          知道了這些我們先做一個簡單地例子:

          [javascript] view plaincopyprint?
          01.<script type="text/javascript"> 
          02.    var xmlHttpRequest=null; 
          03.    function createXHR() 
          04.    { 
          05.        if(window.ActiveXObject) 
          06.        { 
          07.            xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
          08.        } 
          09.        else if(window.XMLHttpRequest) 
          10.        { 
          11.            xmlHttpRequest=new XMLHttpRequest(); 
          12.        } 
          13.        if(null!=xmlHttpRequest) 
          14.        {    
          15.            var v1=document.getElementById("num1").value; 
          16.            var v2=document.getElementById("num2").value; 
          17.            xmlHttpRequest.open("get","servlet/AjaxServlet?v1="+v1+"&v2="+v2,true); 
          18.            xmlHttpRequest.onreadystatechange=callback; 
          19.            xmlHttpRequest.send(null); 
          20.        } 
          21.    } 
          22.    function callback() 
          23.    { 
          24.        if(xmlHttpRequest.readyState==4) 
          25.        { 
          26.            if(xmlHttpRequest.status==200) 
          27.            { 
          28.                var responseText=xmlHttpRequest.responseText; 
          29.                document.getElementById("num3").innerHTML=responseText;//innerHTML不能小寫  
          30.            } 
          31.        } 
          32.    } 
          33.    </script> 
          <script type="text/javascript">
           var xmlHttpRequest=null;
           function createXHR()
           {
            if(window.ActiveXObject)
            {
             xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if(window.XMLHttpRequest)
            {
             xmlHttpRequest=new XMLHttpRequest();
            }
            if(null!=xmlHttpRequest)
            { 
             var v1=document.getElementById("num1").value;
             var v2=document.getElementById("num2").value;
             xmlHttpRequest.open("get","servlet/AjaxServlet?v1="+v1+"&v2="+v2,true);
             xmlHttpRequest.onreadystatechange=callback;
             xmlHttpRequest.send(null);
            }
           }
           function callback()
           {
            if(xmlHttpRequest.readyState==4)
            {
             if(xmlHttpRequest.status==200)
             {
              var responseText=xmlHttpRequest.responseText;
              document.getElementById("num3").innerHTML=responseText;//innerHTML不能小寫
             }
            }
           }
           </script>[html] view plaincopyprint?
          01.<form method="" action=""> 
          02.    <table border="1" borderstyle="solid" cellpacing="0" > 
          03.        <tr><td><input type="text" id="num1"/></td></tr> 
          04.        <tr><td><input type="text" id="num2"/></td></tr> 
          05.        <tr><td><input type="button" value="submit" onclick="createXHR()"/></td></tr> 
          06.        <tr><td><span id="num3"></span></td></tr> 
          07.    </table>  
          08.   </form> 
          <form method="" action="">
              <table border="1" borderstyle="solid" cellpacing="0" >
               <tr><td><input type="text" id="num1"/></td></tr>
               <tr><td><input type="text" id="num2"/></td></tr>
               <tr><td><input type="button" value="submit" onclick="createXHR()"/></td></tr>
               <tr><td><span id="num3"></span></td></tr>
              </table>
             </form>以上代碼有借鑒http://blog.csdn.net/csh624366188/article/details/7670500大家也可以去看。

           

          還有兩哥問題一:如何將結果顯示在下拉列表,第二如何讀取XML文件,這個稍后介紹。

           

          posted on 2012-07-24 16:49 chen11-1 閱讀(1585) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 汾阳市| 大石桥市| 百色市| 那坡县| 大庆市| 南安市| 贵南县| 铁力市| 上栗县| 昌平区| 五原县| 寿宁县| 招远市| 炎陵县| 监利县| 麻江县| 巴里| 根河市| 江华| 友谊县| 平泉县| 奇台县| 江油市| 竹溪县| 科技| 威信县| 老河口市| 冀州市| 绥德县| 巴东县| 介休市| 鹿邑县| 蒲城县| 庆元县| 汝州市| 沙雅县| 手游| 昌黎县| 东辽县| 灌阳县| 泸溪县|