模仿prototype的ajax精簡封裝

來源:互聯網
上載者:User

前段時間做項目使用了prototype.js後來發現一些複雜的情況,有時會有記憶體溢出的情況,索性乾脆不用了,為了保證程式的相容性,按prototype的介面實現了一個簡單的ajax封裝,Firefox下沒有測試.代碼沒格式化主要是想壓縮行數.

 

<html>
    <head>
        <script> 
            var syj={};
            //發送ajax請求的方法
            syj.Ajax=function(url,obj){
                var httpRequest;
                if (window.ActiveXObject)try{httpRequest = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){try{httpRequest = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){}}
                if (!httpRequest){alert('不能建立XMLHTTP執行個體');obj.onComplete();}
                httpRequest.onreadystatechange = function(){if (httpRequest.readyState == 4){obj['onComplete'](httpRequest);}}
                if(url.indexOf('machineDate')==-1) url+=(url.indexOf('?')==-1?"?":"&")+("machineDate="+new Date().getTime());
                url+=(url.indexOf('?')==-1?"?":"&")+obj.parameters;
                if(obj.asynchronous==true) httpRequest.open(obj.method, url); else httpRequest.open(obj.method, url,false);
                httpRequest.send(null);
                return httpRequest;
            };
            function test(){
                alert("test start ");
                var url="http://www.baidu.com/";

                syj.Ajax(url,{
                                method  : "GET",
                                parameters : "s?wd=csdn",
                                asynchronous : true,
                                onFailure : function(httpRequest){
                                                    alert("出錯了!");
                                               },
                                onComplete  : function(httpRequest){
                                                        if(httpRequest.status==200){
                                                            alert(httpRequest.responseText);
                                                        }
                                                     }
                                 }
                            );
                alert("test end ");
            }
         </script>
    </head>
    <body>
            <input type="button" onclick="test()" value="測試" />
    </body>
</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.