欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
JSON 簡(jiǎn)介

雖然XML已在不少應用程序中大顯身手,但它并不是十全十美的,特別是遇到AJAX應用的時(shí)候,XMLHttpRequest會(huì )檢查返回數據的MIME類(lèi)型,如果是text/xml類(lèi)型,XMLHttpRequest就會(huì )運行XML Parser來(lái)解析返回的文檔,并在內存中構建出對應的DOM樹(shù),之后,你可以用JavaScript標準的DOM方法來(lái)操作DOM樹(shù)。由于眾所周知DOM的詬病,這顯然不是有效率的方法。另外一個(gè)問(wèn)題是,如果你想使用JavaScript對象而不是直接用XML數據的話(huà),你還得自己遍歷整個(gè)DOM樹(shù)來(lái)創(chuàng )建相應對象。

于是JSON出現在我們面前。

JSON提供了一種更適合AJAX應用的標準數據交換格式。JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易于人閱讀和編寫(xiě)。同時(shí)也易于機器解析和生成。

XML和JSON都利用結構化來(lái)標記數據。我們將通過(guò)一個(gè)地址簿的例子來(lái)展示它們之間的不同。

該地址簿用XML如下表示:

代碼
  1. <?xml version=‘1.0‘ encoding=‘UTF-8‘?>  
  2. <card>  
  3.    <fullname>Sean Kelly</fullname>  
  4.    <org>SK Consulting</org>  
  5.    <emailaddrs>  
  6.       <address type=‘work‘>kelly@seankelly.biz</address>  
  7.       <address type=‘home‘ pref=‘1‘>kelly@seankelly.tv</address>  
  8.    </emailaddrs>  
  9.    <telephones>  
  10.       <tel type=‘work‘ pref=‘1‘>+1 214 555 1212</tel>  
  11.       <tel type=‘fax‘>+1 214 555 1213</tel>  
  12.       <tel type=‘mobile‘>+1 214 555 1214</tel>  
  13.    </telephones>  
  14.    <addresses>  
  15.       <address type=‘work‘ format=‘us‘>1234 Main St   
  16.          Springfield, TX 78080-1216</address>  
  17.       <address type=‘home‘ format=‘us‘>5678 Main St   
  18.          Springfield, TX 78080-1316</address>  
  19.    </addresses>  
  20.    <urls>  
  21.       <address type=‘work‘>http://seankelly.biz/ </address>  
  22.       <address type=‘home‘>http://seankelly.tv/ </address>  
  23.    </urls>  
  24. </card>  

 

在JSON中,則是:

代碼
  1. {   
  2.    "fullname""Sean Kelly",   
  3.    "org""SK Consulting",   
  4.    "emailaddrs": [   
  5.       {"type""work""value""kelly@seankelly.biz"},   
  6.       {"type""home""pref"1"value""kelly@seankelly.tv"}   
  7.    ],   
  8.     "telephones": [   
  9.       {"type""work""pref"1"value""+1 214 555 1212"},   
  10.       {"type""fax""value""+1 214 555 1213"},   
  11.       {"type""mobile""value""+1 214 555 1214"}   
  12.    ],   
  13.    "addresses": [   
  14.       {"type""work""format""us",   
  15.        "value""1234 Main StnSpringfield, TX 78080-1216"},   
  16.       {"type""home""format""us",   
  17.        "value""5678 Main StnSpringfield, TX 78080-1316"}   
  18.    ],   
  19.     "urls": [   
  20.       {"type""work""value""http://seankelly.biz/"},   
  21.       {"type""home""value""http://seankelly.tv/"}   
  22.    ]   
  23. }   

 

JSON提供了兩種結構:


    名/值對,其格式如下 {"名":"值", ...} 如:{"fullname": "Sean Kelly"},你可以把它理解為對象,或者哈希表,字典等等。

     

    數組,它是值的有序列表。一個(gè)數組以“[”開(kāi)始,“]”結束。值之間使用“,”分隔。

 

JSON的值(value)可以是雙引號括起來(lái)的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。

事實(shí)上大部分現代計算機語(yǔ)言都以某種形式支持它們。這使得一種數據格式在同樣基于這些結構的編程語(yǔ)言之間交換成為可能。

在A(yíng)JAX中的XML與JSON之戰

在A(yíng)JAX應用中,你可以用XMLHttpRequest讀取XML或者JSON文件。一個(gè)典型的AJAX調用如下:

代碼
  1. var req = new XMLHttpRequest();   
  2. req.open("GET""http://localhost/addr?cardID=32"/*async*/true);   
  3. req.onreadystatechange = myHandler;   
  4. req.send(/*no params*/null);   

 

Web服務(wù)器應答的時(shí)候,處理子程序(例子中的myHandler)會(huì )反復被調用。

處理地址簿的一個(gè)XML的程序片斷可能是:

代碼
  1. function myHandler() {   
  2.    if (req.readyState == 4 /*complete*/) {   
  3.        // Update address field in a form with first street address   
  4.        var addrField   = document.getElementById(‘a(chǎn)ddr‘);   
  5.        var root        = req.responseXML;   
  6.        var addrsElem   = root.getElementsByTagName(‘a(chǎn)ddresses‘)[0];   
  7.        var firstAddr   = addrsElem.getElementsByTagName(‘a(chǎn)ddress‘)[0];   
  8.        var addrText    = fistAddr.firstChild;   
  9.        var addrValue   = addrText.nodeValue;   
  10.        addrField.value = addrValue;   
  11.    }   
  12. }   

 

注意:XMLHttpRequest自動(dòng)創(chuàng )建了DOM樹(shù),你可以通過(guò)responseXML屬性訪(fǎng)問(wèn)樹(shù)并進(jìn)行一系列處理,比如通過(guò)getElementsByTagName訪(fǎng)問(wèn)元素。但對于復雜的XML,這是個(gè)煩瑣無(wú)味的活兒!

再看JSON:

代碼
  1. function myHandler() {   
  2.    if (req.readyState == 4 /*complete*/) {   
  3.        var addrField = document.getElementById(‘a(chǎn)ddr‘);   
  4.        var card = eval(‘(‘ + req.responseText + ‘)‘);   
  5.        addrField.value = card.addresses[0].value;   
  6.    }   
  7. }   

 

使用JSON的第一件事,你要手工解析JSON響應,但是請記住,JSON是JavaScript的子集,事實(shí)上你只需要調用一行 eval就可以完成解析工作。接下來(lái)訪(fǎng)問(wèn)JSON的對象就和訪(fǎng)問(wèn)任何JavaScript對象完全一樣:

代碼
  1. card.addresses[0].value  即"1234 Main Stb &"    
  2. card.addresses[0].type   即"work"    
  3. card.addresses[1]        即home address;   
  4. card.fullname            即 "Sean Kelly"  

 

上千次的測試之后表明,JSON的速度幾乎是XML解析的10倍!

JSON要普及,這里有兩個(gè)問(wèn)題:

1. 有多少服務(wù)器愿意提供JSON格式的輸出?隨著(zhù)JSON的速度優(yōu)勢得到大家的認可,相信會(huì )越來(lái)越多。

2. 執行eval操作可能會(huì )導致安全漏洞。所以最好還是使用一個(gè)JSON解析器,不過(guò)幸運的是。你可以在http://www.json.org找到一個(gè)。未來(lái)JSON的支持可能會(huì )被包括在ECMAScript標準中。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
AJAX原理
掌握 ajax,第 1 部分: ajax 簡(jiǎn)介
文字段落向上無(wú)縫滾動(dòng)特效
SUN的《AJAX與J2EE》全文
Ajax 簡(jiǎn)介+實(shí)例 - namelysweet的博客 - 和訊博客
Ajax 基礎和例子
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久