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

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

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

    隨筆-314  評論-209  文章-0  trackbacks-0
    版權(quán)所有,轉(zhuǎn)載請注明,來自www.jialing.net

    ??? Ajax(Asynchronous JavaScript and XML)說到底就是一種瀏覽器異步讀取服務(wù)器上XML內(nèi)容的技術(shù)?,F(xiàn)在的技術(shù)凡是跟XML扯上關(guān)系,再加上個概念做幌子,就像金裝了一樣,拽得不行。門外 的人看得很是熱鬧,門里的人搖搖頭不外如是。XML呢,跨平臺的新潮語言?其實XML=TXT。XML只是符合很多規(guī)范的文本。它本身什么都不是,只是保 存字符的文件。而瀏覽器異步讀取的只是服務(wù)器上的文本內(nèi)容,所以在Ajax開發(fā)時完全不必拘泥于XML。[版權(quán)所有,www.jialing.net]


    • JSON的來歷

    ???? XML 的作用是格式化數(shù)據(jù)內(nèi)容。如果我們不用XML還有什么更好的方法嗎?這個答案是JSON。介紹JSON之前我先介紹一下JavaScript這門腳本語 言。腳本語言自身有動態(tài)執(zhí)行的天賦。即我們可以把想要執(zhí)行的語句放在字符串里,通過eval()這個動態(tài)執(zhí)行函數(shù)來執(zhí)行。字符串里的內(nèi)容會像我們寫的腳本 一樣被執(zhí)行。
    示例1:
    <HTML>
    <HEAD>
    <TITLE>eval?example?1</TITLE>
    </HEAD>
    <BODY>
    <script>
    str?
    =?"alert('hello')";
    eval(str);
    </script>
    </BODY>
    </HTML>

    打開頁面會彈出hello窗口。
    我們可以在字符串中放任何腳本語句,包括聲明語句:
    <HTML>
    <HEAD>
    <TITLE>eval?example?2</TITLE>
    </HEAD>
    <BODY>
    <script>
    define?
    =?"{name:'Michael',email:'17bity@gmail.com'}";
    eval(
    "data?=?"+define);
    alert(
    "name:"+data.name);
    alert(
    "email:"+data.email);
    </script>
    </BODY>
    </HTML>

    ??? 如果我們在后臺異步傳來的文本是JavaScript的聲明語句,那么不是一條eval方法就能解析了?對于解析復(fù)雜的XML,這樣的效率是多么大的提高??!
    ??? 現(xiàn)在就來告訴你什么是JSON:JavaScript Object Notation。我更愿意把它翻譯為JavaScript對象聲明。比如要從后臺載入一些通訊錄的信息,如果寫成XML,如下:

    <contact>
    ????
    <friend>
    ????????
    <name>Michael</name>
    ????????
    <email>17bity@gmail.com</email>
    ????????
    <homepage>http://www.jialing.net</homepage>
    ????
    </friend>
    ????
    <friend>
    ????????
    <name>John</name>
    ????????
    <email>john@gmail.com</email>
    ????????
    <homepage>http://www.john.com</homepage>
    ????
    </friend>
    ????
    <friend>
    ????????
    <name>Peggy</name>
    ????????
    <email>peggy@gmail.com</email>
    ????????
    <homepage>http://www.peggy.com</homepage>
    ????
    </friend>
    </contact>


    而寫成JSON呢:
    [
    ? {
    ???name:
    "Michael",
    ???email:
    "17bity@gmail.com",
    ???homepage:
    "http://www.jialing.net"
    ?},
    ?{
    ???name:
    "John",
    ???email:
    "john@gmail.com",
    ???homepage:
    "http://www.jobn.com"
    ?},
    ? {
    ???name:
    "Peggy",
    ???email:
    "peggy@gmail.com",
    ???homepage:
    "http://www.peggy.com"
    ?}
    ]

    ??? 簡 單的不只是表達上,最重要的是可以丟棄讓人暈頭轉(zhuǎn)向的DOM解析了。因為只要符合JavaScript的聲明規(guī)范,JavaScrip會自動幫你解析好 的。Ajax中使用JSON的基本方法是前臺載入后臺聲明JavaScript對象的字符串,用eval方法來將它轉(zhuǎn)為實際的對象,最后通過 DHTML更新頁面信息。
    • JSON的格式

    JSON的基本格式如下,圖片來自json.org:
    對象是屬性、值對的集合。一個對象的開始于"{",結(jié)束于"}"。每一個屬性名和值間用":"提示,屬性間用","分隔。
    object.gif


    數(shù)組是有順序的值的集合。一個數(shù)組開始于"[",結(jié)束于"]",值之間用","分隔。
    array.gif


    值可以是引號里的字符串、數(shù)字、true、false、null,也可以是對象或數(shù)組。這些結(jié)構(gòu)都能嵌套。
    value.gif


    字符串的定義和C或Java基本一致。
    string.gif


    數(shù)字的定義也和C或Java基本一致。
    number.gif


    • JSON VS XML

    可讀性
    JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規(guī)范的標(biāo)簽形式,很難分出勝負(fù)。

    可擴展性

    XML天生有很好的擴展性,JSON當(dāng)然也有,沒有什么是XML能擴展,JSON不能的。

    編碼難度
    XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。

    解碼難度
    XML的解析得考慮子節(jié)點父節(jié)點,讓人頭昏眼花,而JSON的解析難度幾乎為0。這一點XML輸?shù)恼媸菦]話說。

    流行度

    XML已經(jīng)被業(yè)界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領(lǐng)域,未來的發(fā)展一定是XML讓位于JSON。到時Ajax應(yīng)該變成Ajaj(Asynchronous JavaScript and JSON)了。

    [版權(quán)所有,www.jialing.net]


    附:
    JSON.org : http://www.json.org/
    JSON in JavaScript : http://www.json.org/js.html
    JSON: The Fat-Free Alternative to XML : http://www.json.org/xml.html
    JSON and the Dynamic Script Tag: Easy, XML-less Web Services for JavaScript: http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html
    Using JSON (JavaScript Object Notation) with Yahoo! Web Services: http://developer.yahoo.com/common/json.html
    posted on 2006-12-13 12:32 xzc 閱讀(146) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲成a人片毛片在线| 久久笫一福利免费导航| 精品无码专区亚洲| 亚洲第一区视频在线观看| 中文字幕久久亚洲一区| 免费看美女被靠到爽| 1区2区3区产品乱码免费| 国产中文字幕在线免费观看| 国产精品亚洲二区在线| 亚洲一区中文字幕在线观看| 亚洲av无码av制服另类专区| 亚洲视频在线精品| 亚洲av中文无码| 日韩a级毛片免费观看| 无码人妻一区二区三区免费| 99久久99久久精品免费观看 | 日韩a级毛片免费观看| 国产麻豆视频免费观看| **一级一级毛片免费观看| 久久久久成人片免费观看蜜芽 | 最新亚洲成av人免费看| 亚洲精品黄色视频在线观看免费资源| 女人被弄到高潮的免费视频 | 亚洲资源在线视频| 亚洲最新视频在线观看| 亚洲高清在线观看| 亚洲国产精品免费视频| 亚洲国产综合专区在线电影| 亚洲AV成人无码久久精品老人| 亚洲精品成人片在线播放| 亚洲日本一区二区三区在线| 亚洲日韩精品无码专区网站| 亚洲天堂中文字幕在线| 亚洲啪啪AV无码片| 久久91亚洲精品中文字幕| 亚洲国产精品国自产电影| 亚洲黄色三级视频| 亚洲一级毛片在线观| 亚洲日韩一区精品射精| 粉色视频免费入口| 国产精品无码免费专区午夜|