(高分)Ajax无刷新,分不够可再加

pinkguozilover 2007-11-10 09:52:21
用Ajax做一个多房间聊天室,我是用Ajax.Pro.2.dll控件的。其中有一个脚本是从数据库中获取最新的聊天信息:


function refresh_chat()
{
var roomid="<%=roomid() %>";
var name="<%=uname1() %>";
var one="<%=getdata1() %>";
var newmsg =chatclass.getmsg(roomid,name).value;
if(newmsg!="" && newmsg!= null)
{
if(one !=name || document.all("ispub").checked==false)
{
chat_pub.innerHTML +=newmsg;
}
else
{
chat_sec.innerHTML +=newmsg;
}
}
else
{
chat_pub.innerHTML +="";
}
window.setTimeout(refresh_chat(),1000);
}
关键是:
<script language="javascript" type="text/javascript">
refresh_chat();
</script>
这个放在body里面。就是说它会自动每秒刷新一次。。
然后就打开页面后就一直执行这句代码。。页面就死在那边了。。下边的代码都没有执行。。。。。
请问,我这样写错了吗。????
...全文
186 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyq708 2007-11-13
  • 打赏
  • 举报
回复
var inertval = null;
function refresh_chat()
{
var roomid= " <%=roomid() %> ";
var name= " <%=uname1() %> ";
var one= " <%=getdata1() %> ";
var newmsg =chatclass.getmsg(roomid,name).value;
if(newmsg!= " " && newmsg!= null)
{
if(one !=name ¦ ¦ document.all( "ispub ").checked==false)
{
chat_pub.innerHTML +=newmsg;
}
else
{
chat_sec.innerHTML +=newmsg;
}
}
else
{
chat_pub.innerHTML += " ";
}
if(interval!=null)
window.clearInterval(interval);
interval = window.setInterval("refresh_chat()",1000);
}
关键是:
<script language= "javascript " type= "text/javascript " defer>
refresh_chat();
</script>
mjrgjing 2007-11-12
  • 打赏
  • 举报
回复
可以了,我来啦。
pinkguozilover 2007-11-11
  • 打赏
  • 举报
回复
string               sql=       "select               msgid,u_name1,u_name2,msg,roomid,act,ispub,sendtime,face,lastinfo               from               chat_sendmsg,chatinfo               where               msgid>       '       "               +               last               +               "       '               and               roomid=       '       "               +               roomid               +               "       '               and               ((ispub=       'false       ')               or               (u_name1=       '       "               +               name1               +               "       ')               or               (u_name2=       '       "               +               name1               +               "       ')               or               (u_name2=       '所有人       '))       ";       


pinkguozilover 2007-11-11
  • 打赏
  • 举报
回复
一有我想要的答案我立刻结帖。上面的脚本我已经知道问题在哪边了:
window.setTimeout(refresh_chat(),1000);
里面的红色部分忘记加引号了。。。
现在请大家回答
sql语句查询的问题。谢谢拉:也就是

[code=C#string sql= "select msgid,u_name1,u_name2,msg,roomid,act,ispub,sendtime,face,lastinfo from chat_sendmsg,chatinfo where msgid> ' " + last + " ' and roomid= ' " + roomid + " ' and ((ispub= 'false ') or (u_name1= ' " + name1 + " ') or (u_name2= ' " + name1 + " ') or (u_name2= '所有人 ')) ";
][/code]
这个sql语句只能读出自己发的消息。。别人发的消息就是显示不出来。。。。要怎么改呢。。。
rydanliu 2007-11-10
  • 打赏
  • 举报
回复
在onLoad里调用它<body onLoad="refresh_chat">
pinkguozilover 2007-11-10
  • 打赏
  • 举报
回复
是哦,不是无刷新吗?所以我就选Ajax了。。。原来聊天室做起来也挺难的。。。
cymple 2007-11-10
  • 打赏
  • 举报
回复
AJAX做聊天?
压力很大噢
pinkguozilover 2007-11-10
  • 打赏
  • 举报
回复
chatclass是一个类。。getmsg(roomid,name)是类里面的一个方法。。。
大家帮忙啊。。小猪在这边先谢谢各位拉。。。我们老师要的。。。
spaceko2006 2007-11-10
  • 打赏
  • 举报
回复
newmsg!= null 我记得要写成这样才行:newmsg!= 'null'
pinkguozilover 2007-11-10
  • 打赏
  • 举报
回复
sql语句写错了:
我想实时读取数据库,因为我做的是聊天室。。
要怎么写sql语句实时更新聊天信息并显示出来。。

string sql= "select msgid,u_name1,u_name2,msg,roomid,act,ispub,sendtime,face,lastinfo from chat_sendmsg,chatinfo where msgid> ' " + last + " ' and roomid= ' " + roomid + " ' and ((ispub= 'false ') or (u_name1= ' " + name1 + " ') or (u_name2= ' " + name1 + " ') or (u_name2= '所有人 ')) ";
我是这么写的。但是都只能读出自己发的消息。。别人发的消息就是显示不出来。。。。
pinkguozilover 2007-11-10
  • 打赏
  • 举报
回复
我设定的刷新时间为每隔一秒刷新一次。。
如果不设置小掉的话,就答不到时时刷新的效果了。。。。
yqh860921 2007-11-10
  • 打赏
  • 举报
回复
你把那个window.setTimeout(refresh_chat(),1000); 把里面的1000设置大一点,然后做个window.alert输出测试下这个function refresh_chat 是怎么样的一个执行过程。估计1.和你的1000设定的太小有关 2.refresh_chat函数中有什么地方代码写的有问题
pinkguozilover 2007-11-10
  • 打赏
  • 举报
回复
页面加载的时候调用跟我放在嵌套在body标签里面的效果是一样的。。。。也就是页面死了。。。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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