国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

聊天室建設詳解四

2019-11-18 22:38:00
字體:
來源:轉載
供稿:網友
    當我們把上面的程序保存在具有執行權限的服務器目錄中,在客戶端用瀏覽器打開時,我們見到了平常聊天室一樣的用戶登陸界面。我們于是輸入用戶名及密碼,按發送時,我們所輸入的資料便會暗中存入用戶數據庫中。接著便出現了發言筐,我們試著輸入一句話,點發言按鈕,這時,我們的發言便會帶著我們所輸入的話,我們所選擇的說話對象,我們所選擇的顏色以及表情寫入發言數據庫中。但是,發言之后,我們并沒有發現任何語句出現在屏幕上,那是因為:這個程序本身負責的純粹是把數據庫寫入數據庫,他不會向客戶端返回任何東西,除非你的輸入是錯誤的。
  聊天室還需要一個重要的程序,這個程序自動的、不斷的讀取數據庫中最新的記錄,把他顯示在所有用戶的瀏覽器上。這個程序與別的任何程序沒有任何關系,他的唯一的任務是讀取發言數據庫中的數據,把他顯示出來,他不管客戶是否輸入發言,不管客戶對誰說話,不管客戶選擇什么表情與顏色。當這個聊天室即使沒有一個人說話,這個程序也是不斷的讀取這個數據庫,每N秒鐘刷新一次,這個N是由編程者決定的。
  由此,我們可知:登陸_發言部分與自動刷新部分是沒有任何聯系的。
  在分析范例程序之前,我們最好來分析一下幾點:
  1、在我們往數據庫中寫入數據庫時,記錄是不斷往數據表的尾部增加的,因此,我們必須知道哪一句話是最新的,哪一句話在前面說的,我們知道,在MSaccess數據庫表中,有一個自動編號的字段ID,這個字段非常有用,ID最大的記錄是最新輸入的記錄,每添加一個記錄,ID自動加1,由此,我們可通過ID來對用戶的話進行從新到舊的、一句一句的排序輸出。我們知道,在 SQL 的SELECT 語中有一個 ORDER BY的子句,他按一列或多列對結果進行升序或降序排序。如果我們不用ORDER BY 字句,那SELECT 默認為升序輸出,那我們會看到,最舊的發言總是在前面顯示,而最新的語句則跑到最后面去,那當然不是我們所希望的。
  2、再一點,那就是用戶不斷的往數據庫中輸入語句,數據庫將會變得越來越大,而我們為了速度,我們不能也不必要讀取全部的記錄把所有的話顯示出來,我們只需要看到最新的N句話比如最新的50句話就夠了。如何實現上面兩點,且來看看范例程序:

我們來分析一下下面的程序:chatview.asp

<%Response.Buffer=true%>                 設置緩存為真

<%                            指定數據庫      
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
%>

<%
sql="SELECT * FROM 聊天表 ORDER BY ID DESC"        降序輸出查詢結果    
Set rootRs=conn.Execute(sql)
set name=rootrs("姓名")                  從數據庫中獲取姓名、說話、顏色、表情等
set Word=rootrs("說話")
set colo=rootrs("顏色")
set face=rootrs("表情")
set who=rootrs("說話對象")
%>

<%i=0%>                          定義輸出記錄數 i


<%Do While Not rootRs.Eof and i<=50%>         顯示50句話,包括姓名、話語、顏色、表情等
<%i=i+1%>
<table border='0' cellpadding='0' cellspacing='0' width='85%'><tr>
<td width='100%' bgcolor='#C0C0C0'></td></tr><tr><td width='100%'>
<font color='#0000FF'><strong><%=name%></font></strong><font color='#008080'><%=face%></font><font color='#0000FF'><strong><%=who%>說:
</font></strong><font color='<%=colo%>'><%=word%>
</font></td></tr><tr>
<td width='100%' bgcolor='#C0C0C0'></td></tr></table><br>
<%rootRs.MoveNext
Loop%>

<meta http-equiv="refresh" content="4">           每四秒鐘刷新一次


請把此程序存為chatview.asp

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富民县| 寿光市| 黑河市| 邢台市| 滨州市| 柳林县| 高尔夫| 临安市| 河池市| 英吉沙县| 逊克县| 察隅县| 定远县| 宽甸| 宜章县| 长汀县| 永宁县| 西丰县| 保亭| 明水县| 白朗县| 邹平县| 治县。| 蕲春县| 略阳县| 收藏| 册亨县| 平湖市| 铜山县| 六枝特区| 吕梁市| 定结县| 綦江县| 林甸县| 西青区| 金坛市| 江津市| 巴东县| 满洲里市| 桃江县| 历史|