
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
3、客户端AJAX部分核心代码
EasyJF会议系统中,服务器发送给客户端的都是格式化的xml文档数据。下面是核心的AJAX函数及发送接收会议信息的客户端代码。
| function newXMLHttpRequest() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { } } } return xmlreq; } //处理返回信息 //xmlHttp返回值, //method:方法名 方法必须带一个参数如doRecive(xNode); function handleAjaxResult(req,method) { return function () { if (req.readyState == 4) { if (req.status == 200) { // 将载有响应信息的XML传递到处理函数 var objXMLDoc=new ActiveXObject("Microsoft.XMLDOM"); objXMLDoc.loadXML(req.responseText); eval("if(objXMLDoc.firstChild)"+method+"(objXMLDoc.firstChild.nextSibling);"); } else { //alert("HTTP error: "+req.status); } } } } //执行客户端Ajax命令 //url 数据post地址 //postData 发送的数据包 //handleMethod 处理返回的方法 function executeAjaxCommand(url,postData,handleMethod) { var req = newXMLHttpRequest(); req.onreadystatechange =handleAjaxResult(req,handleMethod); req.open("PO ST", url, true); req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); req.setRequestHeader("charset","utf-8"); req.send(postData); } //用户发言 unction doSend() { if(!check())return false; var msg=EditForm.content.value; var reciver=EditForm.reciver.value; var url="/chat.ejf?easyJWebCommand=send&cid="+roomId+"&lastReadId="+lastReadId; var postData="sender="+myName+"&reciver="+reciver+"&content="+msg; clearTimeout(reciveTime); executeAjaxCommand(url,postData,"recive"); EditForm.content.value=""; } //接收发言信息 function doRecive() { var reciver=EditForm.reciver.value; var url="/chat.ejf?easyJWebCommand=recive&cid="+roomId+"&lastReadId="+lastReadId; executeAjaxCommand(url,"","recive"); } //处理接收到的发言信息 function recive(list) { var id=""; for(var oNode=list.firstChild;oNode;oNode=oNode.nextSibling) // 依次分析每个节点 { chatContent.innerHTML+=showMsg(oNode); id=oNode.getAttribute("cid"); } if(id!="") lastReadId=id; chatContent.scrollTop=chatContent.scrollHeight; reciveTime=setTimeout("doRecive();",5000); } |