ajax做的无刷新聊天遇到的一个问题,召唤各位朋友帮忙看看,在线结帖

888228 2007-01-25 09:19:05
用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;
}
...全文
206 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
888228 2007-01-25
  • 打赏
  • 举报
回复
尝试输入1-0 10个数字,基本上就会有数字丢失显示不出来
888228 2007-01-25
  • 打赏
  • 举报
回复
问题还是存在.

以下是测试地址,查看源文件可以看到js代码.
http://test2.bbvod.net/chat.aspx?username=名字

888228 2007-01-25
  • 打赏
  • 举报
回复
谢谢dlzhangln兄,我现在测试下,能不能帮小弟讲解下,小弟的思路错误在哪里?谢谢了.
Soloboy1020 2007-01-25
  • 打赏
  • 举报
回复
帮你UP下

你最好看下你往容器里面写的信息是不是闭和的HTML,就不帮你细看了
dlzhangln 2007-01-25
  • 打赏
  • 举报
回复
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);

dlzhangln 2007-01-25
  • 打赏
  • 举报
回复
function GetResult()//ajax无刷新实现
{
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
oBao.open("POST","GetMsg.aspx?id=<%=RoomID%>",false);
oBao.onreadystatechange=function()
{
if(xmlhttp.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);
888228 2007-01-25
  • 打赏
  • 举报
回复
各位大哥还没起床吗?
wind_rove 2007-01-25
  • 打赏
  • 举报
回复
学习,还没做过........

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧