Ajax學(xué)習筆記(2) - 一定要用XML嗎?
Ajax一定要用XML嗎?我覺(jué)得不一定用。
不用XML的理由:
1. javascript腳本解析Xml比較慢;
2. 對于一些簡(jiǎn)單數據,用Xml有點(diǎn)大炮轟蚊子的感覺(jué);
3. XmlHttp提供了responseText,就是給了大家不用Xml的方便;
不用Xml用什么?
可以采用技術(shù)很多,對于簡(jiǎn)單數據你可以返回自定義的數據格式,比如,第1位是狀態(tài)位,第2位之后是數據。對于復雜數據,你甚至可以直接返回javascript腳本,然后用eval執行。
在最近寫(xiě)的一個(gè)無(wú)刷新聊天程序中,我就使用了直接返回javascript腳本的方式,下面是自動(dòng)獲取消息的部分代碼。
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);
// ... 接下來(lái)就是處理消息分發(fā)
}
}
setTimeout(‘checkMsg()‘, 10000); // 每隔10秒刷新一次
}
說(shuō)明:
1. rt=xmlhttp.responseText返回新消息的數據,當沒(méi)有新消息時(shí),返回空;當有新消息時(shí)(可以使多條),返回的內容格式如下:
[[‘發(fā)送人1‘,‘發(fā)送時(shí)間1‘,‘消息內容1‘], [‘發(fā)送人2‘,‘發(fā)送時(shí)間2‘,‘消息內容2‘], ...]
2. 通過(guò)var msgs=eval(rt)后,msgs就是存放了n條消息的二維數組,然后按二維數組的方式處理就可以了;
最后,收集了一篇比較有用的文章,里面對使用Xml有詳細介紹:
http://www.dragonson.com/doc/ajax.html
posted on 2005-08-21 12:38 簡(jiǎn)單生活 閱讀(243) 評論(7) 編輯 收藏 收藏至365Key 所屬分類(lèi): .Net

