ASP編程入門進階(十一):Chat聊天程式

來源:互聯網
上載者:User

通常的聊天室所採用的程式,也就是Chat程式了,其基本結構原理是不會採用到資料庫的。那究竟採用什麼技術呢?我們知道ASP變數當中Session變數的作用是記錄單個使用者的資訊,並且能跟蹤使用者的行為;Application對象的作用則起的全域變數,可以實現網站多個使用者之間在頁面中共用資訊的。

那可以想象,在針對當前聊天程式中,一個聊天成員即為一個Session變數,聊天成員之間的會話則當成Application變數進行共用顯示,以使各成員都能看見。

那下面就採用一很經典的執行個體程式,進行瞭解和分析。

1,chat.asp

<%If Request.ServerVariables("Request_Method")="GET" then%>
<form method="post" action="chat.asp">
<input type="text" name="nick" value="your nick name"><p>
<input type="submit" value="come in"><p>
<input type="hidden" name="log" size="20" value="1">
</form>
<%Response.End
Else
Response.clear
dim talk
If Request.Form("nick")<>"" then
Session("nick")=Request.Form("nick")
End if
%>

<form method="post" action="chat.asp" name=form1>
<%=Session("nick")%>說話:
<input type="text" name="talk" size="50"><br>
<input type="submit" value="提交">
<input type="reset" value="取消"></p>
</form>
<a href="chat.asp">離開</a><br>

<%
If Request.Form("log")<>1 then
If trim(Request.Form("talk"))="" then
talk=Session("nick")&"不說一句話就想來敷衍大家"
Else
talk=trim(Request.Form("talk"))
End If
Application.lock
Application("show")="來自"&Request.ServerVariables("remote_addr")& "的" &Session("nick")&"在"&time& "的時候說:" &talk& "<br>" &Application("show")
Application.UnLock
Response.Write Application("show")
End if
%>
<%End if%>

簡單解釋:
1,<%If Request.ServerVariables("Request_Method")="GET" then%>的作用就是判斷當前頁面接受的方式,如果為GET方式則會顯示“要求輸入暱稱”的表單頁。因為頁面的默然接受方式為GET,當在URL地址欄直接敲入時,也就是沒有任何資訊的時候,就應該顯示要求“輸入暱稱”。

2,<input type="hidden" name="log" size="20" value="1">和下面的If Request.Form("log")<>1 then是有關聯的:顯然第一次輸入暱稱進入,同樣將log隱藏欄位發送。但作為第一次的進入是無任何語句發言的,所以判斷接受的log值不為1,亦即非首次登入(表示已經登入)時,執行內部相關聊天顯示程式。

3,trim(Request.Form("talk"))="",trim就是個函數了:刪去字串前,後的空格。初此,還有rtrim():去掉字串後的空格;ltrim():去掉字串前的空格。

<script language=vbs><br />cnbruce=" This is a Test ! "<br />alert("全部顯示:"&cnbruce)<br />alert("刪除前面空格:"&ltrim(cnbruce))<br />alert("刪除後面空格:"&rtrim(cnbruce))<br />alert("刪除前後空格:"&trim(cnbruce))<br /></script><br />
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]

4,

Application.lock
Application("show")="來自"&Request.ServerVariables("remote_addr")& "的" &Session("nick")&"在"&time& "的時候說:" &talk& "<br>" &Application("show")
Application.UnLock

提取精華得

Application.lock
Application("show")=talk& "<br>" &Application("show")
Application.UnLock

可以看到是Application變數的疊加功能,每次Application("show")的值都建立在原有Application變數值的基礎之上,再附加上最新的聊天內容:talk變數的值。這樣就保證所有使用者都能看到的共用資訊了。

未完待敘

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.