ajax做的无刷新聊天遇到的一个问题,召唤各位朋友帮忙看看,在线结帖
用XMLHTTP做了一个拖拽的无刷新聊天,基本功能已经晚上,但是遇到一个很怪的问题,聊天语句经常会丢失,于是做了跟踪调查.发现一个问题,但是以小弟的经验,不知道该怎么解决,特求助,问题如下:
聊天信息可保证有接收到,用alert弹出来该信息的话,句句都有,但是弹出的同时要写到窗体上的容器上,却有时候写不进去.我想了很久,会不会是容器有问题,就换了容器,而且同时在页面放了几种容器来测试,结果问题还是一样.
///拖拽代码
function GetResult()//ajax无刷新实现
{
var oBao = new ActiveXObject( "Microsoft.XMLHTTP ");
oBao.open( "POST ", "GetMsg.aspx?id= <%=RoomID%> ",false);
oBao.send();
var strResult = oBao.responseText;
var arrResult = strResult.split( "‖ ");
//alert( '接到数据 ');
for(var i=0;i <arrResult.length-1;i++)
{
//用来跟踪的一个TEXT,也是一样有时候写不进去
Form1.Temp.value = " ";//
Form1.Temp.value = arrResult[i];
arrTmp = arrResult[i].split( "| ");
//ChatRun是执行信息输出到页面的function,有时候会写不进去.
ChatRun(arrTmp[0],arrTmp[1],arrTmp[2],arrTmp[3],arrTmp[4],arrTmp[5],arrTmp[6])
//将整个句子弹出,每句都有
alert(arrResult[i]);
}
setTimeout( "GetResult() ",1000);
}
///////////////////ChatRun
function ChatRun(username,post_obj,saystr,sl,addsign,sayscolor,number)
{
var oChatRoom = document.getElementById( "ChatRoom ");
var msg = " ";
var gg = " ";
msg = " <span class=chat4> <a href=javascript:seluser( ' "+username+ " ');> "+username+ " </a> 对 <a href=javascript:seluser( ' "+post_obj+ " ');> "+post_obj+ " </a> 说: <font color= "+sayscolor+ "> "+saystr+ " </font> </span> <br> ";
oChatRoom.innerHTML += msg;
oChatRoom.scrollTop = 999999;
}
------解决方案--------------------function GetResult()//ajax无刷新实现
{
var oBao = new ActiveXObject( "Microsoft.XMLHTTP ");
oBao.open( "POST ", "GetMsg.aspx?id= <%=RoomID%> ",false);
oBao.onreadystatechange=function()
{
if(oBao.readyState==4)
{
var strResult = oBao.responseText;
var arrResult = strResult.split( "‖ ");
for(var i=0;i <arrResult.length-1;i++)
{
Form1.Temp.value = " ";//
Form1.Temp.value = arrResult[i];
arrTmp = arrResult[i].split( "| ");
alert(arrTmp.length);
ChatRun(arrTmp[0],arrTmp[1],arrTmp[2],arrTmp[3],arrTmp[4],arrTmp[5],arrTmp[6])
}
setTimeout( "GetResult() ",1000);
}
}
oBao.send(null);
------解决方案--------------------帮你UP下
你最好看下你往容器里面写的信息是不是闭和的HTML,就不帮你细看了