狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

PHP完成聊天室的主動更新與被動更新

PHP完成聊天室的主動更新與被動更新

更新時間:2024-04-11 文章作者:未知 信息來源:網絡 閱讀次數:

聊天的內容如何顯示在屏幕上,一種是每隔一段時間刷新一次頁面,讀入全部聊天
內容,然后顯示,這里采用的是js的document.write的方法實現不刷新的聊天頁面
!

1 主頁面的生成,規定了CSS類型,顯示歡迎詞
function write2(){
if(this.u.document==null)return;
this.u.document.writeln("<html><head>");
this.u.document.writeln("<meta http-equiv=Content-Type content=text/ht
ml; charset=gb2312>");
this.u.document.writeln("<style type=text/css>");
this.u.document.writeln(".p9 { font-size: 11pt; line-height: 15pt}");

this.u.document.writeln("body { font-size: 11pt; line-height: 15pt}");

this.u.document.writeln("a:visited { font-size: 11pt;color: ext-decoration: none;}");
this.u.document.writeln("a:link { font-size: 11pt;color: -decoration: none}");
this.u.document.writeln("a:hover { font-size: 11pt;color:
this.u.document.writeln("</style>");

this.u.document.writeln("</head>");
this.u.document.writeln("<body);
//.................. 這里插入生成在線人數組的程序段


this.u.document.writeln("<script>");
this.u.document.writeln("<p class=p9 align=left>");
this.u.document.writeln("<p align=center>歡迎光臨PlayBoy聊天室,本聊天室
正在測試階段,如有問題請與<a href=mailto:pccastle@sina.com>我們聯系</a>
</p>");
}

2 初始化進入信息,第一次進入聊天室

if($action == "enter")
{

/////////////////// 調用顯示主屏幕的js程序 ////////////////////
print("parent.write2();n");

//發言內容,某某進入聊天室了
$message = "<a href=javascript:parent.cs('$name'); target=d>$name</a>來
到聊天室".$message." ".date("m月d日 H:i")."<script>parent.add('$name',
'$photo');parent.write1();</script><br>";
}
//更新發言內容
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");n");

//調用主動刷新js程序,傳遞已經顯示的發言數目
print("parent.flushwin($number)n");

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


3 處理發送表單的請求

//不處理空的發言和超過一定數目的發言
if( ($message != "")&&(strlen($message)<150))
{

//檢查發言者是否在線,防止意外
$onlineperson = file("useronline.dbf");
$personsign=0;
for($i=0;$i<count($onlineperson);$i++)
{
$person = split($split,$onlineperson[$i],99);
if($person[0] == $name)
{
$personsign = 1;
$person[3] = date("U");
break;
}
}

//在線時的處理程序
if($personsign == 1)
{

//添加發言時間的部分
$message = $message." <font size=1>".date("m月d日 H:i")."</font><br>";


//鎖定發言總數文件
while(file_exists($lockfile)){ $pppp++; }
fclose(fopen($lockfile,"w"));

//讀入發言總數
$talkmessage = file($filename);
$number = chop($talkmessage[0]);

//總數加1,然后保存
$talkhandle = fopen($filename,"w");
$number++;
fputs($talkhandle,$number);
fclose($talkhandle);
unlink($lockfile);

//總數對10取模后以文件形式保存發言內容
$filehandle = fopen("messageonline".($number%10).".php","w");
fputs($filehandle,$message);
fclose($filehandle);
}
}

//////////////////////////////////////////////////////////////////
這樣,表單的處理已經完成,下面的主動更新程序將會把新的發言內容顯示在屏幕

//////////////////////////////////////////////////////////////////

4 主動更新的自動循環調用方法

可以使用<meta http-equiv="reflesh" content="3;url=messageflush.php?nam
e=<?print($name)?>&&pass=<?print($pass)&&last=<?print($last)?>的方式更
新!

我的程序以前就是使用這種方法自動更新的,但是我發現一個問題,那就是當這個
更新程序出現運行錯誤時,他不會產生調用下次更新的代碼,造成后臺更新程序停
止工作!所以我采用了js定時的方法來完成同樣的功能!

var flushtimeID=null;
var flushRunning=false;

//上次更新標志
var flushflag = true;

function flushstop()
{
if(flushtimerRunning)clearTimeout(flushtimerID);
flushtimerRunning=false;
}
function flushstart()
{
flushstop();

//使用發送表單里面的上次顯示的值
flushwin(this.d.document.inputform.last.value);
}

function flushwin(winnumber)
{
//如果上次更新正確,則調用下次更新
if(flushflag == true)
{
url="messageflush.php?name=<? print($name); ?>&&pass=<? print($pass);
?>&&last="+winnumber;
flush.location=url
flushflag=false
}

//否則等待一個循環
flushtimerID=setTimeout("flushstart()",2000);
flushtimerRunning=true;
}

這種方法保證了在主程序不死的情況下,后臺更新程序會一直運行下去!


5 主動更新程序
<script Language='JavaScript'>
<?
//讀入最大的發言數目
$message = file($filename);
$number = chop($message[0]);

//從上次顯示的下一個發言開始到最大發言結束,顯示發言內容
for($i=$last+1;$i<=$number;$i++)
{
//讀入下一個發言內容
$filename = "messageonline".($i%10).".php";
$message = file($filename);
$tempmessage = split($split,$message[0],99);

//顯示發言內容
print("parent.u.document.writeln("$message[0]");rn");
}

//更新發送表單最后一個發言的數目
print("parent.d.document.inputform.last.value=$number;n");

//通知主程序本次更新已經完成
print("parent.flushflag=true;n");
?>
</script>


這樣,每個發送的發言,經過被動更新程序處理保存到文件內,然后由一個循環的主
動更新程序完成顯示任務!!!

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
日韩免费视频线观看| 亚洲国产成人av网| 欧美一级二级三级蜜桃| 欧美图片一区二区三区| 美女诱惑一区| 在线一区二区三区做爰视频网站| 久久av一区二区三区| 久久aⅴ乱码一区二区三区| 国产模特精品视频久久久久| 国产九区一区在线| 久久久xxx| 在线观看av一区| 欧美日韩国产中文| 欧美一区二区三区免费视频| 精品欧美乱码久久久久久| 2014亚洲片线观看视频免费| 国产日产欧美一区二区视频| 日本一区二区动态图| 亚洲六月丁香色婷婷综合久久 | 日韩精品一区二区三区在线播放| 在线亚洲免费视频| 欧美猛男超大videosgay| 欧美日韩国产一二三| 日韩免费观看高清完整版| 精品国产污污免费网站入口| 国产精品三级在线观看| 亚洲一区电影777| 久久精品国产精品青草| 成人网在线免费视频| 欧美午夜不卡| 久久久久久亚洲精品杨幂换脸| 欧美曰成人黄网| 久久―日本道色综合久久| 国产精品久久久久久久久晋中| 欧美人成网站| 91久久奴性调教| 在线播放日韩导航| 国产亚洲美州欧州综合国| 综合精品久久久| 毛片av一区二区三区| 成人aa视频在线观看| 国产日本精品| 欧美一级生活片| 亚洲另类一区二区| 国产999精品久久| 黑人中文字幕一区二区三区| 色94色欧美sute亚洲13| 国产午夜精品一区二区三区四区| 一区二区三区四区精品在线视频| 韩国三级在线一区| 亚洲日产国产精品| 91精品国产综合久久久蜜臀粉嫩 | 欧美视频在线一区| 国产成人自拍在线| 亚洲高清在线播放| 欧美年轻男男videosbes| 国产精品女主播av| 久久99国产精品久久99| 一区在线视频| 日韩一区二区三区在线视频| 亚洲欧美日韩在线不卡| 成人国产免费视频| 色视频欧美一区二区三区| 国产精品区一区二区三区| 激情成人综合网| 国产视频在线观看一区| 久久久无码精品亚洲日韩按摩| 日本最新不卡在线| 亚洲国产国产亚洲一二三| 日韩免费看的电影| 久热成人在线视频| 亚洲一区二区三区精品在线观看| 久久精品在线观看| 国产成人精品亚洲777人妖 | 欧美日韩国产综合视频在线观看| 夜夜嗨av一区二区三区网页| 99久久综合99久久综合网站| 欧美日韩精品福利| 亚洲chinese男男1069| 国内精品久久久久久久影视麻豆 | 欧美另类一区二区三区| 亚洲v日本v欧美v久久精品| 欧美日韩亚洲免费| 欧美精品一区二区高清在线观看 | 欧美亚一区二区| 亚洲一级片在线观看| 亚洲午夜精品久久久久久浪潮| 久久天天做天天爱综合色| 丰满白嫩尤物一区二区| 欧美日韩国产大片| 久久精品国产久精国产| 一本大道久久a久久综合| 亚洲一区二区成人在线观看| 亚洲人成网站在线观看播放| 亚洲国产精品精华液2区45| 欧美一区久久| 久久久久久97三级| 91在线观看地址| 国产欧美日韩中文久久| 色综合久久综合中文综合网| 国产亚洲自拍一区| 欧美成人69| 亚洲欧洲性图库| 亚洲午夜精品久久| 一区二区三区国产| 国产精品欧美日韩一区| 亚洲国产另类精品专区| 久久狠狠一本精品综合网| 天堂蜜桃一区二区三区 | 亚洲伊人色欲综合网| 国产精品裸体一区二区三区| 洋洋成人永久网站入口| 久久国产手机看片| 九九九精品视频| 欧美不卡在线视频| 91免费视频网址| 亚洲欧美日韩中文播放| 亚洲综合日本| 另类专区欧美蜜桃臀第一页| 日韩一级片网址| 国产自产精品| 亚洲成av人片| 91精品国产高清一区二区三区蜜臀| 国产不卡视频在线播放| 国产日韩亚洲欧美综合| 亚洲黄色毛片| 日日夜夜免费精品视频| 欧美三级电影在线观看| gogogo免费视频观看亚洲一| 国产精品看片你懂得| 新狼窝色av性久久久久久| 激情av综合网| 国产精品网站导航| 久久国产一区二区| 成人国产电影网| 一区二区久久久久久| 欧美精品粉嫩高潮一区二区| 欧美~级网站不卡| 亚洲福利电影网| 日韩视频国产视频| 亚洲第一黄色| 韩日欧美一区二区三区| 国产精品久久久久国产精品日日| 久久精品日韩| 99国产欧美另类久久久精品| 亚洲一区二区四区蜜桃| 日韩三级精品电影久久久| 最新国产拍偷乱拍精品| 国产综合成人久久大片91| 日本一区二区三区免费乱视频| 欧美亚洲免费高清在线观看| 成人午夜在线视频| 亚洲成人一区在线| 久久免费视频色| 91久久精品国产91性色tv| 91色九色蝌蚪| 另类小说综合欧美亚洲| 亚洲国产成人在线| 欧美日韩国产高清一区二区三区| 精品99视频| 懂色av中文一区二区三区| 亚洲一区二区三区国产| 久久伊人蜜桃av一区二区| 在线视频你懂得一区二区三区| 欧美先锋影音| 国产成人精品亚洲777人妖| 亚洲成人av一区二区三区| 国产精品色在线观看| 日韩欧美视频一区| 色欧美片视频在线观看 | 国产色综合一区| 欧美性生活久久| 夜夜爽www精品| 欧美日本中文| 国产一区二区三区免费看 | 欧美日韩 国产精品| 国产剧情一区二区| 日韩不卡一区二区三区| 亚洲欧美日韩国产中文在线| 久久综合五月天婷婷伊人| 欧美人牲a欧美精品| 一本色道久久综合亚洲精品按摩| 国内视频一区| 欧美日产一区二区三区在线观看| 国产成人av一区二区三区在线 | 日韩欧美国产午夜精品| 欧美三级日韩在线| 久久亚洲精选| 国产农村妇女精品一二区 | 亚洲日本在线a| 国产精品久久一级| 欧美激情艳妇裸体舞| 精品1区2区在线观看| 日韩欧美国产wwwww| 51久久夜色精品国产麻豆| 欧美三级欧美一级| 欧美日韩www| 欧美日韩aaaaa| 欧美日韩国产综合视频在线观看 | 日韩一二三四区|