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

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

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

    隨筆-7  評論-24  文章-102  trackbacks-0

    1、DOM
    2、節(jié)點(diǎn)屬性和方法
    3、Ajax安全和工作區(qū)
    4、Ajax數(shù)據(jù):XML或 JSON(JavaScript對象符號)





    1、DOM

         在 W3C關(guān)于 DOM的規(guī)范中,將 document元素描述為一個節(jié)點(diǎn)(node)集合,他們之間是以有層次的樹形結(jié)構(gòu)連接的。你不僅可以從樹上讀取節(jié)點(diǎn),還可以刪除或創(chuàng)建新的節(jié)點(diǎn)。

    #document
    html
      head
        title
      body
        h1
        div
          p
            #text
          p
            #text


    2、節(jié)點(diǎn)屬性和方法

         對于文檔樹上的每個節(jié)點(diǎn)都擁有 DOM(Core)的 Node對象中定義的基本屬性和基本方法集。Node對象的屬性主要包括:

    nodeName,對象名稱,如 head元素的名稱就是 HEAD;
    nodeValue,如果不是一個元素,則返回對象值;
    nodeType,用數(shù)字表示的節(jié)點(diǎn)類型;
    parentNode,當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn);
    childNodes,由其子節(jié)點(diǎn)組成的 NodeList,前提是存在子節(jié)點(diǎn);
    firstChild,由子節(jié)點(diǎn)組成的 NodeList中的第一個節(jié)點(diǎn);
    lastChild,由子節(jié)點(diǎn)組成的 NodeList中的最后一個節(jié)點(diǎn);
    previousSibling,如果當(dāng)前節(jié)點(diǎn)是位于 NodeList中的子節(jié)點(diǎn),那么它表示的就是該列表中的前一個節(jié)點(diǎn);
    nextSibling,如果當(dāng)前節(jié)點(diǎn)是位于 NodeList中的子節(jié)點(diǎn),那么它表示的就是該列表的下一個節(jié)點(diǎn);
    attributes,一個 NamedNodeMap,它是以鍵/值對形式表示的,是該元素的屬性列表;
    ownerDocument,擁有的 document對象,當(dāng)你擁有多個 document對象時它比較有用;
    namespaceURI,命名空間的 URI,如果有的話,他是針對節(jié)點(diǎn)的;
    Prefix,命名空間的前綴,如果有的話,它是針對節(jié)點(diǎn)的;
    localName,如果指定了 namespaceURI的話,它表示的是節(jié)點(diǎn)的本地名。


    3、Ajax安全和工作區(qū)

         在 Ajax遵循 JavaScript中相同源、相同域的規(guī)則:在 Web頁面中只能調(diào)用相同服務(wù)器(相同域)的 Web服務(wù);也就是說:服務(wù)器端頁面與服務(wù)器發(fā)送請求的頁面處于相同的服務(wù)器、相同的域中。

         但是對于 Ajax程序而言,向本地服務(wù)器端請求一個 Web服務(wù),然后接收本地服務(wù)器的返回信息即可。它并不關(guān)心本地 Web服務(wù)實(shí)際上是否通過訪問遠(yuǎn)程 Web服務(wù)實(shí)現(xiàn)的。


    4、Ajax數(shù)據(jù):XML或 JSON(JavaScript對象符號)


    XML格式的 Ajax應(yīng)答

         好處是比簡單的字符串或 HTML片段更多元。另外,你還可以向?qū)Υ?Web頁面元素那樣,直接通過 DOM方法來操作 Ajax調(diào)用返回的 XML格式應(yīng)答。

         確保在服務(wù)器端應(yīng)用程序在返回?cái)?shù)據(jù)時設(shè)置了正確的數(shù)據(jù) MINE類型 text/xml,然后通過 XMLHttpRequest對象的 responseXML容器來獲取應(yīng)答信息。


    JSON

         JSON是一種“輕量級的數(shù)據(jù)交換格式”。和一組由逗號分開的字符串,以及處理復(fù)雜(成本高昂)的 XML相比,JSON是一種很容易將服務(wù)器端數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)成 JavaScript對象的數(shù)據(jù)格式。

         JSON實(shí)際上就是使用 JavaScript語法定義的對象,一個對象的語法包括一對大括號以及其中的成員:
         object{ } or object { string : value ...}

         對于數(shù)組而言,他是由一組元素加上一對方括號組成的:
         array[] or array[ value, value, value, ..., value ]

    注:在 JavaScript可以用單引號或雙引號來引用字符串,而 JSON只支持雙引號。

    示例,在 PHP腳本中使用簡單的 JSON
    $result = '[ { "value" : "stlou", "title" : "St. Louis" }, ' .
              '  { "value" : "kc" , "title" : "Kansas City" } ]';


    JSON對象

         在 http://www.json.org/js.html上可以找到一個 JSON JavaScript程序庫,它提供了一些基于該程序庫的 JSON對象。包含了直接訪問 JSON對象的靜態(tài)方法:
    JSON.parse,基于指定的 JSON格式字符串創(chuàng)建一個 JavaScript對象;
    JSON.stringify,將一個 JavaScript對象序列化成一個 JSON格式的字符串。


    JSON 示例1:
    //對 JSON字符串進(jìn)行“計(jì)算”
    var response = JSON.parse(xmlHttpObj.responseText);

    var citySelection = document.getElementById("citySelection");
    var name = value = null;

    //處理從 JSON對象返回的數(shù)據(jù)
    for (var i=0; i<response.length; i++) {
        name 
    = response[i].title;
        value 
    = response[i].value;
        citySelection.options[i] 
    = new Option(name, value);
    }


    JSON示例2:
    //從服務(wù)器獲得的 JSON對象實(shí)例:
    "title" : "Appletini"
      
    "ingredients" : [ { "ingredient" : "1 ounce vodka"},
                        { 
    "ingredient" : "1/2 ounce Sour Apple Pucker or apple schnapps "} ],
      
    "instruction" : "Mix vodka and schnapps in a glass filled with ice." }


    //============================================================
    //
    處理 JSON數(shù)據(jù)

    //創(chuàng)建對象
    var recipeObj = JSON.parse(xmlhttp.responseText);

    var recipe = document.createElement('div');
    recipe.id 
    = 'recipe';
    recipe.className 
    = 'recipe';

    //添加標(biāo)題
    var title = recipeObj['title'];
    var titleNode = document.creteElement('h3');
    titleNode.appendChild(document.createTextNode(title));
    recipe.appendChild(titleNode);

    //添加配方成分
    var ingredients = recipeObj.ingredients;
    for (var i=0; i<ingredients.length; i++){
        
    var item = ingredients[i].ingredient;
        
    }

    .
    body[
    0].appendChild(recipe);
    posted on 2010-05-30 11:17 黃小二 閱讀(396) 評論(0)  編輯  收藏 所屬分類: Ajax
    主站蜘蛛池模板: 97在线观免费视频观看| a级毛片毛片免费观看久潮喷| 免费下载成人电影| 亚洲国产美女视频| 99国产精品永久免费视频 | 久久久久久精品成人免费图片| 亚洲成AV人片在线观看| 久久aⅴ免费观看| 亚洲精品无码久久毛片波多野吉衣| 免费女人高潮流视频在线观看| 久久夜色精品国产噜噜噜亚洲AV| **俄罗斯毛片免费| 亚洲综合一区无码精品| 国产精品免费视频一区| 人成午夜免费大片在线观看 | 久久夜色精品国产噜噜亚洲AV| 57pao一国产成视频永久免费 | 亚洲黄色免费网站| 久久久久久国产a免费观看黄色大片 | 国产亚洲3p无码一区二区| 久久久久久久久久国产精品免费| 亚洲天堂一区在线| 日本特黄特色免费大片| 一级日本高清视频免费观看| 亚洲av中文无码乱人伦在线播放 | 91av视频免费在线观看| 亚洲av无码久久忘忧草| 国产成人免费A在线视频| 久久国产乱子伦精品免费午夜| 亚洲日本在线观看| 日韩激情无码免费毛片| WWW免费视频在线观看播放| 亚洲综合久久久久久中文字幕| 日韩中文无码有码免费视频 | 青青青国产在线观看免费网站| 羞羞漫画小舞被黄漫免费| 婷婷亚洲综合五月天小说| 日本黄页网站免费| 日韩免费人妻AV无码专区蜜桃| 亚洲AV综合色区无码一二三区| 亚洲AV综合色区无码另类小说|