<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    將Ajax包裝成對象使用

    ?? Ajax目前是社區內最熱門的話題之一了,最近在我們的項目中用了大量的Ajax,現在把我們的使用方法在這兒寫出來,希望大家能指教。

    因為要用到Ajax就肯定要用到XMLHttpRequest對象,但由于不同的瀏覽器版本,相應的生成它的方法也有所不同,所以我們不得不對瀏覽器的版本進行判斷,試想,如果我們要在很多地方都要寫那些繁瑣的代碼會覺的很麻煩,代碼的重用也很低,所以我們寫一個Ajax的對象。代碼如下:

    //*********************************************************
    // 目的:??? AJAX類
    // 輸入:??? 無
    // 返回:??? 返回XMLHttp對象
    // 例子:??? var myConn = new XHConn();
    //
    //?????????? if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
    //
    //?????????? var fnWhenDone = function (oXML) { alert(oXML.responseText); };
    //
    //?????????? myConn.connect("mypage.php", "POST", "foo=bar&baz=qux", fnWhenDone);
    //
    //*********************************************************
    function XHConn()
    {
    ? var xmlhttp = false, bComplete = false;
    ? try
    ? {
    ? ?xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    ? }
    ? catch (e)
    ? {
    ? ?try
    ? ?{
    ? ??xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    ? ?}
    ??? catch (e)
    ??? {
    ? ??try
    ? ??{
    ? ???xmlhttp = new XMLHttpRequest();
    ? ??}
    ? ??catch (e)
    ? ??{
    ? ???xmlhttp = false;
    ? ??}
    ? ?}
    ? }
    ? if (!xmlhttp) return null;
    ? this.connect = function(sURL, sMethod, sVars, fnDone)
    ? {
    ??? if (!xmlhttp) return false;
    ??? bComplete = false;
    ??? sVars = (sVars == '') ? Math.random() : sVars + "&" + Math.random();
    ??? sMethod = sMethod.toUpperCase();

    ??? try
    ??? {
    ????? if (sMethod == "GET")
    ????? {
    ??????? xmlhttp.open(sMethod, sURL+"?"+sVars, true);
    ??????? xmlhttp.setRequestHeader("Content-Type", "text/html;charset=GB2312");
    ??????? sVars = "";
    ????? }
    ????? else
    ????? {
    ??????? xmlhttp.open(sMethod, sURL, true);
    ??????? xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
    ??????? xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ????? }
    ????? xmlhttp.onreadystatechange = function()
    ????? {
    ??????? if (xmlhttp.readyState == 4 && !bComplete)
    ??????? {
    ????????? bComplete = true;
    ????????? fnDone(xmlhttp);
    ??????? }
    ????? };
    ?????
    ????? xmlhttp.send(sVars);
    ??? }
    ??? catch(z)
    ??? {
    ??? ?return false;
    ??? }
    ??? return true;
    ? };
    ?
    ? return this;
    }


    通過這個對象,我們把那些繁瑣的代碼都封裝到里面,這樣大大提高了代碼的重用性,每次要用Ajax時我們只需要在我們的頁面上 new一個XHConn()對象就行了,然后通過調用它的方法connect(sURL, sMethod, sVars, fnDone)就可以和服務器進行異步交互了。



    posted on 2006-06-09 16:50 nbt 閱讀(300) 評論(0)  編輯  收藏 所屬分類: Ajax技術

    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術網站

    友情鏈接

    國內一些開源網站

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲综合久久成人69| 亚洲AV午夜福利精品一区二区| 亚洲大香伊人蕉在人依线| 午夜精品射精入后重之免费观看| 国产亚洲av片在线观看18女人| 免费国产a理论片| 亚洲一区二区三区无码影院| jizz在线免费观看| 亚洲精品美女久久久久99| 中国一级毛片免费看视频| 国产∨亚洲V天堂无码久久久| 鲁丝片一区二区三区免费| 亚洲成人在线电影| 美丽的姑娘免费观看在线播放 | 久久青草免费91线频观看不卡| 久久精品九九亚洲精品天堂| 99蜜桃在线观看免费视频网站| 亚洲第一成年人网站| 成人免费午夜在线观看| 久久久久亚洲国产AV麻豆| 亚洲精品无码专区久久同性男| 两个人看的www视频免费完整版| 亚洲视频在线播放| 丁香花免费高清视频完整版| 亚洲国产午夜精品理论片在线播放 | 亚洲精品一品区二品区三品区| 免费在线看黄网站| 亚洲一区精彩视频| 免费大黄网站在线观看| A级毛片高清免费视频在线播放| 亚洲欧洲春色校园另类小说| 午夜毛片不卡高清免费| 中文字幕久无码免费久久| 亚洲精品影院久久久久久| 免费看国产精品麻豆| 男女午夜24式免费视频| 亚洲国产精品无码第一区二区三区| 在线精品亚洲一区二区三区| 99久久久精品免费观看国产| 午夜在线免费视频| 亚洲日本国产精华液|