Ajax學習筆記(2) – 一定要用XML嗎?

來源:互聯網
上載者:User

Ajax一定要用XML嗎?我覺得不一定用。

不用XML的理由:
1. javascript指令碼解析Xml比較慢;
2. 對於一些簡單資料,用Xml有點大炮轟蚊子的感覺;
3. XmlHttp提供了responseText,就是給了大家不用Xml的方便;

不用Xml用什嗎?
可以採用技術很多,對於簡單資料你可以返回自訂的資料格式,比如,第1位是狀態位,第2位之後是資料。對於複雜資料,你甚至可以直接返回javascript指令碼,然後用eval執行。

在最近寫的一個無重新整理聊天程式中,我就使用了直接返回javascript指令碼的方式,下面是自動擷取訊息的部分代碼。

var xmlhttp=createXH();
function checkMsg(){
  xmlhttp.open('Get', 'Message/CheckNew.aspx', true);
  xmlhttp.onreadystatechange=continueCheckMsg;
  xmlhttp.send('');
}

function continueCheckMsg(){
  if(xmlhttp.readyState==4){
    var rt=xmlhttp.responseText;
    if(rt!=''){
      var msgs=eval(rt);
      // ... 接下來就是處理訊息分發
    }
  }
  setTimeout('checkMsg()', 10000); // 每隔10秒重新整理一次
}

說明:
1. rt=xmlhttp.responseText返回新訊息的資料,當沒有新訊息時,返回空;當有新訊息時(可以使多條),返回的內容格式如下:
[['發送人1','發送時間1','訊息內容1'], ['發送人2','發送時間2','訊息內容2'], ...]
2. 通過var msgs=eval(rt)後,msgs就是存放了n條訊息的二維數組,然後按二維數組的方式處理就可以了;

最後,收集了一篇比較有用的文章,裡面對使用Xml有詳細介紹:
http://www.dragonson.com/doc/ajax.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.