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

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

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

    Edzy_Java

      BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
      58 隨筆 :: 12 文章 :: 11 評論 :: 0 Trackbacks
    ajax架構中主要涉及的技術:

    client:?用?javascript的DOM?操作?server端返回的xml文件

    server:??servlet?
    +?DAO,用于生成client端所需的xml文件并返回
    ?
    下面主要介紹client的代碼:
    ?
    ?1 //先假設server傳過來如下的xml文件內容:
    ?2 <? xml?version="1.0"?encoding="gb2312" ?>
    ?3 < students >
    ?4 ????? < student? name ="木魚子" >
    ?5 ?????????? < job > Programmer </ job >
    ?6 ?????????? < salary > 3000 </ salary >
    ?7 ????? </ student >
    ?8 ????? < student? name ="丁磊" >
    ?9 ?????????? < job > 網易CEO </ job >
    10 ?????????? < salary > 100000 </ salary >
    11 ????? </ student >
    12 ????? < student? name ="陳天橋" >
    13 ?????????? < job > 盛大CEO </ job >
    14 ?????????? < salary > 120000 </ salary >
    15 ????? </ student >
    16 </ students >
    ?
    1 //類的構造,傳入xml文檔和需要處理的標簽名稱
    2 function?DataSet(xmldoc,?tagLabel)?{
    3 ?this.rootObj?=?xmldoc.getElementsByTagName(tagLabel)
    4 ?
    5 //3個方法定向,方便調用
    6 ?this.getCount?=?getCount
    7 ?this.getData?=?getData
    8 ?this.getAttribute?=?getAttribute
    9 }
    ?
    ?
    ?1 //3個方法函數定義
    ?2 function?getCount(){
    ?3 ?return?this.rootObj.length
    ?4 }
    ?5
    ?6 function?getData(index,?tagName){
    ?7 ??if?(index?>=?this.count){
    ?8 ????????return?"index?overflow"
    ?9 ???}
    10 ?var?node?=?this.rootObj[index]
    11 ?var?str?=?node.getElementsByTagName(tagName)[0].firstChild.data
    12 ?return?str
    13 }
    14
    15 function?getAttribute(index,?tagName)?{
    16 ???if?(index?>=?this.count){
    17 ????????return?"index?overflow"
    18 ???}
    19 ?var?node?=?this.rootObj[index]
    20 ?var?str?=?node.getAttribute(tagName)
    21 ?return?str
    22 }


    //使用DataSet類獲取所需標簽集合

    ?1 function?updateByXML(xmlDoc)?{?
    ?2 ??????var?studentDS?=?new?DataSet(xmlDoc,"student");
    ?3 ??????var?count?=?studentDS.getCount()
    ?4 ??????for(i=0;i < count ;i++)?{
    ?5 ??????????var?name? =?studentDS.getAttribute(i,"name")
    ?6 ?????????? var?job? =?studentDS.getData(i,"job")
    ?7 ?????????? var?salary? =?studentDS.getData(i,"salary")??
    ?8 ?????????? alert(name?+?","?+?job?+?","?+?salary)
    ?9 ??????}
    10 ?}

    //操縱DOM,創建table,顯示獲得的數據,用這種方法顯示數據,容易讓用戶接受!~^_^

    ?1 // 首先要確定document對象中,有沒有定義table
    ?2 function ?deleteOldTable()? {
    ?3 ?????delRow? = ?document.getElementsByTagName( " table " ).length
    ?4
    ?5 ????? if (delRow? == 0 )? {
    ?6 ??????????? return ?;
    ?7 ???????}

    ?8
    ?9 ????? var ?node? = ?document.getElementsByTagName( " table " )[delRow - 1 ];? // 表格
    10 ????? var ?c? = ?node.childNodes.length
    11
    12 ????? for (i = 0 ;i < c;i ++ ) {
    13 ???????node.removeChild(node.childNodes[ 0 ]);? // 刪除全部單元行
    14 ?????}

    15
    16 }

    ?

    ?1 // 傳入DataSet的一個實例即可
    ?2 function ?makeTable(m_ds)? {
    ?3 ?????deleteOldTable()????? // 先清除以前的結果
    ?4
    ?5 ????? var ?table? = ?document.createElement( " table " );
    ?6 ?????table.setAttribute( " border " , " 1 " );
    ?7 ?????table.setAttribute( " width " , " 100% " );
    ?8
    ?9 ?????document.body.appendChild(table);
    10 ????? var ?header? = ?table.createTHead();
    11 ????? var ?headerrow? = ?header.insertRow( 0 );
    12 ?????headerrow.insertCell( 0 ).appendChild(document.createTextNode( " 姓名 " ));
    13 ?????headerrow.insertCell( 1 ).appendChild(document.createTextNode( " 職業 " ));
    14 ?????headerrow.insertCell( 2 ).appendChild(document.createTextNode( " 工資 " ));
    15
    16 ????? for ( var ?i = 0 ;i < m_ds.getCount();i ++ )? {??
    17 ?????????? var ?name? = ?m_ds.getAttribute(i, " name " )
    18 ?????????? var ?job? = ?m_ds.getData(i, " job " )
    19 ?????????? var ?salary? = ?m_ds.getData(i, " salary " )??????
    20 ?????????? var ?row? = ?table.insertRow(i + 1 );
    21 ??????????row.insertCell( 0 ).appendChild(document.createTextNode(name));
    22 ??????????row.insertCell( 1 ).appendChild(document.createTextNode(job));
    23 ??????????row.insertCell( 2 ).appendChild(document.createTextNode(salary));
    24 ?????}

    25 }

    以上就是javascript的DOM的基本使用方法,作為ajax的基礎,掌握這個是非常重要滴!~

    posted on 2006-11-15 16:58 lbfeng 閱讀(197) 評論(0)  編輯  收藏 所屬分類: Javascript&Ajax
    主站蜘蛛池模板: 亚洲一区二区三区不卡在线播放| 免费无码婬片aaa直播表情| 国产成人亚洲精品91专区手机| 一区二区免费视频| 黄色片在线免费观看| 免费无码午夜福利片| 亚洲妇女熟BBW| 亚洲AV成人无码久久精品老人| 免费人成年轻人电影| 巨波霸乳在线永久免费视频| 三年片免费高清版| 久久亚洲精品高潮综合色a片| 亚洲精品福利网站| 欧洲亚洲国产清在高| 亚洲成?Ⅴ人在线观看无码| 成人免费毛片内射美女APP| 777成影片免费观看| 99麻豆久久久国产精品免费 | 偷自拍亚洲视频在线观看| 亚洲三级中文字幕| 亚洲视频一区网站| 97se亚洲综合在线| 婷婷亚洲久悠悠色悠在线播放 | 亚洲.国产.欧美一区二区三区| 亚洲国产精品人久久电影| 亚洲视频免费在线播放| 久久精品国产精品亚洲毛片| 亚洲AV午夜成人影院老师机影院| 精品国产亚洲一区二区在线观看| 国产大片51精品免费观看| 日韩精品免费电影| 国产精品久久免费视频| 色播在线永久免费视频| 看全色黄大色大片免费久久| 成人免费a级毛片无码网站入口| 无码人妻一区二区三区免费| 久久不见久久见中文字幕免费| 国产电影午夜成年免费视频 | 亚洲美女视频免费| 亚洲成a人片77777群色| 亚洲性猛交xx乱|