大家好!好久沒看到大家了,上次寫了用PHP的透過檔案操作的聊天室,當然是漏洞百出的,而且每一次刷新螢幕都很糟糕的!我想了好久,是不是能有一種方法不要刷新,就能取得發言的訊息了?多用一個框架就能實現這個效果了,即多用一個框架我們稱為getmsg,我們讓getmeg去獲取信息而且保證每一次取得的信息是最新的,就是上次取得的發言就不要了,上次我編的就是每一次取得資訊都是重複的,這樣效果不好。
我的設計思想是:每一次發言,都把它提交到伺服器上,然後保存到一個資料庫裡,每格幾秒鐘getmsg就去伺服器上取得最新發言數據,並保證上次取得的發言就不要取下來了,然後把取下來的發言疊加到一個專門顯示發言的視窗(listmsg)去。這樣我們就感覺listmsg視窗不會有重刷新的感覺而且,只是看到發言信息不斷加進去,這樣就有很好的效果,
怎樣在一個框架把信息加到另個框架去了?用JavaScript就可以實現這個想法的:
當然你得在mysql裡建兩個表,一個表用於保存發言信息,一個表用於保存幾個在線的,在列在線人數時,我們讓它每個60秒刷新一次,並把一分鐘以前的發言刪掉,並看某個發言人是不是很長時間沒發言了,是的話,就刪掉他,
由於表的子段很簡單,在這裡就不要寫出來了,看程式就會知道了。這個程式在網路下測試的效果都很好!
表格的名稱是:chat和chat_getmsg
if(!isset($username))
$$username= “客人”;
$c
mysql_select_db("yourdadabase",$conid);
$dstr=date("YmdHis");
$sql="insert chat_getmsg(使用者名稱,shijian)values('$username','$dstr')";
mysql_query($sql,$conid);
$sql="update chat_getmsg set shijian='$dstr' where username='$username'";
mysql_query($sql,$conid);
mysql_close($conid);
? charset=gb2312">