在看了blogjava看了 emu 的一篇< 異步json例子 >, 感覺不錯, 學習并記錄下來
原稿地址 http://www.blogjava.net/emu/archive/2007/05/14/117416.html
異步json例子 的數據為
- < HTML > ??
- < HEAD > ??
- < title > 異步json例子 </ title > ??
- < SCRIPT ? LANGUAGE = "JavaScript" > ??
- function?test(){ ??
- ????var? s ?=? document .createElement("SCRIPT"); ??
- ????document.getElementsByTagName("HEAD")[0].appendChild(s); ??
- ???? s.src = "http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456" ; ??
- } ??
- function?visitCountCallBack(data){ ??
- ????for(var?i?in?data){ ??
- ????????var? e ?= document .getElementById(i); ??
- ????????if(e)? e.innerHTML = data [i]; ??
- ????} ??
- ??
- } ??
- </ SCRIPT > ??
- </ HEAD > ??
- < BODY > ??
- < button ? onclick = "test()" > test </ button > < BR > ??
- 歷史訪問人數: < span ? id = "visitcount" ? style = "color:#6600CC" > 點擊test按鈕獲取數據 </ span > < BR > ??
- 今天訪問人數: < span ? id = "dayvisit" ? style = "color:#CC6633" > 點擊test按鈕獲取數據 </ span > < BR > ??
- 陽光指數: < span ? id = "sun" ? style = "color:red" > 點擊test按鈕獲取數據 </ span > < BR > ??
- 愛心指數: < span ? id = "love" ? style = "color:violet" > 點擊test按鈕獲取數據 </ span > < BR > ??
- 雨露指數: < span ? id = "rain" ? style = "color:blue" > 點擊test按鈕獲取數據 </ span > < BR > ??
- 營養指數: < span ? id = "nutri" ? style = "color:green" > 點擊test按鈕獲取數據 </ span > < BR > ??
- 花匠級別: < span ? id = "gardener" ? style = "color:#996633" > 點擊test按鈕獲取數據 </ span > ??
- </ BODY > ??
- </ HTML > ??
其中請求的 http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456 返回
- visitCountCallBack ??
- ( ??
- ??{ ??
- ???? "visitcount" :49036012, ??
- ???? "dayvisit" :3144, ??
- ???? "spacemark" :0, ??
- ???? "markchange" :0, ??
- ???? "sun" :416, ??
- ???? "love" :402, ??
- ???? "rain" :416, ??
- ???? "nutri" :404, ??
- ???? "level" :5, ??
- ???? "gardener" :1 ??
- ??} ??
- );??
相比xml,json的好處是:天生的跨瀏覽器(比如我的這個demo應該可以跨所有支持dhtml的瀏覽器而不需要任何修改),客戶端解析代價(CPU和內存)非常小,非單根結構(xml是單根結構),標記名只出現一次(xml的標記名在大多數情況下都需要出現兩次:<tag>...</tag>,因此浪費了很多流量)
主要缺點是只支持get方式請求,另外跨編碼(json資源的編碼和引用頁面的編碼不同)的時候要做一些特殊處理。比如漢字可以預先escape。
此外很多人并不知道json可以異步獲取,這個例子很重要的一點是展示了如何異步獲取json。
感謝 http://www.blogjava.net/emu/ ?分享
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
