代码改变世界

Ajax入门笔记+服务器配置

2014-05-07 20:53  Pretty丶Boy  阅读(482)  评论(0编辑  收藏  举报

 

 

认识Ajax:
              AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
              页面局部刷新
              在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。

使用Ajax:
             可以单独封装,方便多个文件调用。
               ----------------------------------------------------------------------------------------------------
                function ajax(url, fnSucc, fnFaild){    //文件地址,成功调取文件返回的内容,失败时执行的程序
                          //1.创建Ajax对象,判断兼容性
                          var oAjax=null;
        
                         if(window.XMLHttpRequest){
                                      oAjax=new XMLHttpRequest();
                         }else{
                                      oAjax=new ActiveXObject("Microsoft.XMLHTTP");
                         }
        
                         //2.连接服务器
                         oAjax.open('GET', url, true);

                                          “      关于Ajax缓存问题,已经成功调用过Ajax文件后,服务器端源文件更再次改,客户端不会实时刷新,而是再次调用
                                            先前缓存的文件。解决办法,就是在文件名上动脑筋了:
                                                   oAjax.open('GET','text.txt?t='+new date() .getTime() ,true);    <注意问号>
                                                          根据实际需求来确定多久更新,  毫秒、秒、分...

                                                    
                         //3.发送请求
                         oAjax.send();
        
                         //4.接收服务器的返回
                        oAjax.onreadystatechange=function (){
                                     if(oAjax.readyState==4){
                                                 if(oAjax.status==200){
                                                         if(oAjax.responseXML && oAjax.responseXML.childNodes.length>0){             //判断是纯文本文件还是XML文件
                                                                    var outMsg = getText(oAjax.responseXML.getElementByTagName('p')[0]);  
                                                                                         /* 可以使用js中的getElementByTagName() 来获取XML里的元素 */
                                                         }else{
                                                                    var outMsg = oAjax.responseText;
                                                 }
                                                 fnSucc(outMsg);

                                                 function getText(inval){      //判断获取的节点里面,是否有文本内容
                                                          if(inval.textContent){
                                                                    return inval.textContent;
                                                          }
                                                          return inval.text;
                                                 }
                                     }else{                                                 //发生错误时
                                             if(fnFaild){
                                               fnFaild(oAjax.status);
                                             }
                                     }
                                     };
                }
               ------------------------------------------------------------------------------------------------------------

               调用:
                       <script src="ajax.js"></script>  //引入文件
                       <script>
                                  window.onload=function (){                                     
                                              var oBtn=document.getElementById('btn1');         
        
                                              oBtn.onclick=function (){
                                                              //ajax能且仅能 从服务器读取文件
                                                              //参数可以略写 文件名,成功调取文件返回的内容,失败时执行的程序
                                                             ajax('abc.txt?t='+new Date().getTime(), function (str){
                                                                                           alert(str);
                                                                                            /* 成功获取文件内容后,执行代码写在这里 */
                                                              }),;
                                               };
                                    };
                        </script>
                 ---------------------------------------------------------------------------------------------------------