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

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

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

    將Ajax包裝成對象使用

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

    因為要用到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()對象就行了,然后通過調(diào)用它的方法connect(sURL, sMethod, sVars, fnDone)就可以和服務器進行異步交互了。



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


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


    網(wǎng)站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導航

    統(tǒng)計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術(shù)網(wǎng)站

    友情鏈接

    國內(nèi)一些開源網(wǎng)站

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人免费视频小说| 免费无码肉片在线观看| 亚洲一区视频在线播放| 视频一区二区三区免费观看| 日韩成全视频观看免费观看高清| 亚洲欧洲综合在线| 精品香蕉在线观看免费| 亚洲中文字幕无码一去台湾| 中文字幕无码不卡免费视频| 亚洲精品天堂在线观看| 国产女高清在线看免费观看| 亚洲爆乳少妇无码激情| 四虎影视免费永久在线观看| 全部在线播放免费毛片| 国产亚洲精品不卡在线| 丰满人妻一区二区三区免费视频| 久久久无码精品亚洲日韩蜜桃 | 中文字幕专区在线亚洲| 中文字幕在线免费播放| 91亚洲精品视频| A级毛片内射免费视频| 99亚洲男女激情在线观看| 亚洲国产成人久久一区久久| 麻豆精品成人免费国产片| 亚洲毛片一级带毛片基地| 国产最新凸凹视频免费| japanese色国产在线看免费| 亚洲色欲色欲综合网站| 99精品全国免费观看视频| 免费看一级一级人妻片| 亚洲电影一区二区| 免费看美女让人桶尿口| 久久99精品免费一区二区| 亚洲成人免费网址| 免费一级特黄特色大片在线| 久久久精品免费国产四虎| 亚洲精品av无码喷奶水糖心| 亚洲中文字幕无码日韩| 国产精品入口麻豆免费观看| 菠萝菠萝蜜在线免费视频| 亚洲蜜芽在线精品一区|