隨筆-348  評論-598  文章-0  trackbacks-0
          之前我也做過json方面的東西,不過都快忘掉了。轉篇文章,回憶一下。
          來源:http://www.aygfsteel.com/emu/archive/2007/05/14/117416.html
          感謝emu和大胃


          本來一直覺得這么基礎的功能是沒有什么好拿出來講的,今天和網友聊天發現,由于缺乏對json的理解,很多人都還在繼續帶著自己的項目往ajax的方向進軍,而完全不知道有一個好得多的替代品。所以寫下這么個demo給大家參考:
          <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>

          這里請求的資源是
          返回的是類似這樣的一個js語句 :
          visitCountCallBack({"visitcount":1941,"dayvisit":4,"spacemark":0,"markchange":0,"sun":200,"love":14,"rain":200,"nutri":200,"level":4,"gardener":11});


          科普一下:
          相比xml,json的好處是:天生的跨瀏覽器(比如我的這個demo應該可以跨所有支持dhtml的瀏覽器而不需要任何修改),客戶端解析代價(CPU和內存)非常小,非單根結構(xml是單根結構),標記名只出現一次(xml的標記名在大多數情況下都需要出現兩次:<tag>...</tag>,因此浪費了很多流量)
          主要缺點是只支持get方式請求,另外跨編碼(json資源的編碼和引用頁面的編碼不同)的時候要做一些特殊處理。比如漢字可以預先escape。
          此外很多人并不知道json可以異步獲取,這個例子很重要的一點是展示了如何異步獲取json。

          ---------------------------------------------------------
          專注移動開發

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2007-05-15 13:12 TiGERTiAN 閱讀(884) 評論(3)  編輯  收藏 所屬分類: Ajax

          評論:
          # re: [轉]json的一個簡單例子 2007-05-15 22:21 | 大胃
          樓主不厚道,轉貼也不給出原帖地址,這樣相關討論也可以更集中些嘛。這是你的一畝三分地,我明白,至少也該對emu說聲謝謝吧.. 對他人的尊重就是對自己的尊重。

          http://www.aygfsteel.com/emu/archive/2007/05/14/117416.html

            回復  更多評論
            
          # re: [轉]json的一個簡單例子 2007-05-15 22:27 | TiGERTiAN
          恩,馬上補上,主要是給自己做備注的,沒有發布到其他板塊。。。下次不會了!  回復  更多評論
            
          # re: [轉]json的一個簡單例子 2008-11-24 18:08 | 11
          11111111111  回復  更多評論
            
          主站蜘蛛池模板: 乐昌市| 武城县| 平塘县| 东乡县| 嵊州市| 秦皇岛市| 合江县| 海兴县| 郧西县| 扎囊县| 广灵县| 黄石市| 合江县| 华宁县| 五华县| 福州市| 蒙城县| 吴桥县| 玉树县| 昌都县| 五华县| 富阳市| 皮山县| 花垣县| 鄂伦春自治旗| 广饶县| 鹿泉市| 商城县| 改则县| 怀安县| 蓬安县| 西吉县| 丰宁| 贵溪市| 西华县| 信阳市| 新津县| 汕头市| 远安县| 枣庄市| 许昌市|