企业为什么要收购:php 聊天室 可不可以不定时刷新

来源:百度文库 编辑:高考问答 时间:2024/04/28 21:27:25
php 聊天室 可不可以不定时刷新
因为导师说定时刷新的网页很烦人
谢谢php高手赐教

可以的,采用js的document.write就可以实现了.
function write2(){
if(this.u.document==null)return;
this.u.document.writeln("");
this.u.document.writeln("");
this.u.document.writeln("");

this.u.document.writeln("");
this.u.document.writeln("//.................. 这里插入生成在线人数组的程序段

this.u.document.writeln("
";
}
//更新发言内容
while(file_exists($lockfile)){ $pppp++; }

//发言的锁定
fclose(fopen($lockfile,"w"));

//读入发言的总句数,也就是所有人一共发了多少言!我们可以保存每一个发言,但是这样会占用大量的磁盘空间,我们采用了一种取模的方法,循环使用文件来减少文件操作!
$talkmessage = file($filename);
$number = chop($talkmessage[0]);

//发言数增加一,然后保存
$talkhandle = fopen($filename,"w");
$number++;
fputs($talkhandle,$number);
fclose($talkhandle);

/去掉锁定
unlink($lockfile);

//对发言总数对10取模,作为文件名保存发言内容,也就是说第11句和第1句使用同一个文件名,由于不可能同时有10句话没有更新,所以这是数在人不是非常多的情况下很好!当然,考虑到人多的情况,可以设成100.
$filehandle = fopen("messageonline".($number%10).".php","w");
fputs($filehandle,$message);
fclose($filehandle);

//显示进入信息
print("parent.u.document.writeln("$message"); ");

//调用主动刷新js程序,传递已经显示的发言数目
print("parent.flushwin($number) ");

//保存最后一次显示的发言
$last = $number;
}

不刷新是不可能的,不过界面华丽的话,你可以使用框架
<iframe src='*.php'></iframe>刷新框架内文件就不会很明显了!