Ajax-----簡易聊天室實戰

abcbbc發表於2007-05-20

img
chat.asp
chat.css
chat.js
data.xml
index.html
mess.asp
sendmess.asp

主要看chat.js mess.asp sendmess.asp

data.xml:




ailen
歡迎!!

[@more@]

mess.asp

dim node,i,nodecount
set xml = CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("data.xml"))
set root = xml.documentElement
set nodeLis = root.childNodes
nodeCount = nodeLis.length
nums=int(nodeCount/10)
For i=1 to nums*10-9
set node = nodeLis.nextNode()
next
For i=i to nodeCount
set node = nodeLis.nextNode()
%>
[]:

Next
%>

sendmess.asp
username=request("user")
mess = request("mess")
posttime=mid(date(),6)&" "&time()
if username<>"" then
strSourceFile = Server.MapPath("data.xml")
'獲取XML檔案的路徑這裡根據你的虛擬目錄不同而不同
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'建立XML對像
objXML.load(strSourceFile)
'把XML檔案讀入記憶體中
Set objRootlist = objXML.documentElement
'選取節點
brstr=chr(13)&chr(10)&chr(9)
'為了插入XML檔案中的節點換行空格排列整齊(當然你也可以不用這樣只是為了XML資料好看而以)
XMLnode=brstr&""&brstr & _
""&brstr & _
""&username&""&brstr & _
""&mess&""&brstr & _
"
"&chr(13)
'根據得到的資料建立XML片段
set objXML2=Server.CreateObject("Microsoft.XMLDOM")
'建立一個新XML對像
objXML2.loadXML(XMLnode)
'把XML版片段讀入記憶體中
set rootNewNode=objXML2.documentElement
'獲得objXML2的根節點
objRootlist.appendChild(rootNewNode)
'把XML片段插入到List.xml中
objXML.save(strSourceFile)
'儲存lsit.xml檔案(因為不儲存List.xml只在記憶體中更新了)
set objXML=nothing
set objXML2=nothing
end if
%>

chat.js
// JavaScript Document

//建立物件
function createXMLHttps()
{
var ret = null;
try {
ret = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (e) {
try {
ret = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (ee) {
ret = null;
}
}
if (!ret && typeof XMLHttpRequest != 'undefined')
ret = new XMLHttpRequest();
return ret;
}

//時間函式
function getDataTimes()
{
var strDate,strTime;
strDate = new Date();
strTime = strDate.getTime();
return strTime;
}

//獲取資訊
function ShowMess()
{
var strtime = getDataTimes();
var xmlhttp = createXMLHttps();
var element = document.getElementById('mess_box');
xmlhttp.open("GET",'mess.asp?strTime='+strtime,false);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
element.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
//傳送資訊
function SendMess()
{
var strtime = getDataTimes();
var xmlhttp = createXMLHttps();
var element = document.getElementById('mess_box');
var user = document.getElementById('user').value;
var mess = document.getElementById('mess').value;
if (user=="")
{
alert("請輸入使用者名稱!");
return false;
}
if (mess=="")
{
alert("不能發空資訊!");
return false;
}
xmlhttp.open("GET",'SendMess.asp?user='+user+'&mess='+mess+'&strTime='+strtime,false);
xmlhttp.send(null);
ShowMess();
document.getElementById('mess').value="";

}
// 重新整理
function getmess() {
timer = window.setInterval("ShowMess()",2000);
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219138/viewspace-915689/,如需轉載,請註明出處,否則將追究法律責任。

相關文章