ASP編程入門進(jìn)階(十一):Chat聊天程序
更新時(shí)間:2007年01月03日 00:00:00 作者:
通常的聊天室所采用的程序,也就是Chat程序了,其基本結(jié)構(gòu)原理是不會(huì)采用到數(shù)據(jù)庫(kù)的。那究竟采用什么技術(shù)呢?我們知道ASP變量當(dāng)中Session變量的作用是記錄單個(gè)用戶的信息,并且能跟蹤用戶的行為;Application對(duì)象的作用則起的全局變量,可以實(shí)現(xiàn)站點(diǎn)多個(gè)用戶之間在頁(yè)面中共享信息的。
那可以想象,在針對(duì)當(dāng)前聊天程序中,一個(gè)聊天成員即為一個(gè)Session變量,聊天成員之間的會(huì)話則當(dāng)成Application變量進(jìn)行共享顯示,以使各成員都能看見。
那下面就采用一很經(jīng)典的實(shí)例程序,進(jìn)行了解和分析。
1,chat.asp
簡(jiǎn)單解釋:
1,<%If Request.ServerVariables("Request_Method")="GET" then%>的作用就是判斷當(dāng)前頁(yè)面接受的方式,如果為GET方式則會(huì)顯示“要求輸入昵稱”的表單頁(yè)。因?yàn)轫?yè)面的默然接受方式為GET,當(dāng)在URL地址欄直接敲入時(shí),也就是沒有任何信息的時(shí)候,就應(yīng)該顯示要求“輸入昵稱”。
2,<input type="hidden" name="log" size="20" value="1">和下面的If Request.Form("log")<>1 then是有關(guān)聯(lián)的:顯然第一次輸入昵稱進(jìn)入,同樣將log隱藏域發(fā)送。但作為第一次的進(jìn)入是無任何語(yǔ)句發(fā)言的,所以判斷接受的log值不為1,亦即非首次登錄(表示已經(jīng)登錄)時(shí),執(zhí)行內(nèi)部相關(guān)聊天顯示程序。
3,trim(Request.Form("talk"))="",trim就是個(gè)函數(shù)了:刪去字符串前,后的空格。初此,還有rtrim():去掉字符串后的空格;ltrim():去掉字符串前的空格。
[Ctrl+A 全部選擇進(jìn)行拷貝 提示:可先修改部分代碼,再點(diǎn)擊運(yùn)行]
4,
提取精華得
可以看到是Application變量的疊加功能,每次Application("show")的值都建立在原有Application變量值的基礎(chǔ)之上,再附加上最新的聊天內(nèi)容:talk變量的值。這樣就保證所有用戶都能看到的共享信息了。
未完待敘
那可以想象,在針對(duì)當(dāng)前聊天程序中,一個(gè)聊天成員即為一個(gè)Session變量,聊天成員之間的會(huì)話則當(dāng)成Application變量進(jìn)行共享顯示,以使各成員都能看見。
那下面就采用一很經(jīng)典的實(shí)例程序,進(jìn)行了解和分析。
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& "的時(shí)候說:" &talk& "<br>" &Application("show") Application.UnLock Response.Write Application("show") End if %> <%End if%> |
簡(jiǎn)單解釋:
1,<%If Request.ServerVariables("Request_Method")="GET" then%>的作用就是判斷當(dāng)前頁(yè)面接受的方式,如果為GET方式則會(huì)顯示“要求輸入昵稱”的表單頁(yè)。因?yàn)轫?yè)面的默然接受方式為GET,當(dāng)在URL地址欄直接敲入時(shí),也就是沒有任何信息的時(shí)候,就應(yīng)該顯示要求“輸入昵稱”。
2,<input type="hidden" name="log" size="20" value="1">和下面的If Request.Form("log")<>1 then是有關(guān)聯(lián)的:顯然第一次輸入昵稱進(jìn)入,同樣將log隱藏域發(fā)送。但作為第一次的進(jìn)入是無任何語(yǔ)句發(fā)言的,所以判斷接受的log值不為1,亦即非首次登錄(表示已經(jīng)登錄)時(shí),執(zhí)行內(nèi)部相關(guān)聊天顯示程序。
3,trim(Request.Form("talk"))="",trim就是個(gè)函數(shù)了:刪去字符串前,后的空格。初此,還有rtrim():去掉字符串后的空格;ltrim():去掉字符串前的空格。
[Ctrl+A 全部選擇進(jìn)行拷貝 提示:可先修改部分代碼,再點(diǎn)擊運(yùn)行]
4,
Application.lock Application("show")="來自"&Request.ServerVariables("remote_addr")& "的" &Session("nick")&"在"&time& "的時(shí)候說:" &talk& "<br>" &Application("show") Application.UnLock |
提取精華得
Application.lock Application("show")=talk& "<br>" &Application("show") Application.UnLock |
可以看到是Application變量的疊加功能,每次Application("show")的值都建立在原有Application變量值的基礎(chǔ)之上,再附加上最新的聊天內(nèi)容:talk變量的值。這樣就保證所有用戶都能看到的共享信息了。
未完待敘
您可能感興趣的文章:
- 利用ASP規(guī)劃聊天室
- 用PHP+MySQL搭建聊天室功能實(shí)例代碼
- PHP實(shí)現(xiàn)簡(jiǎn)單聊天室(附源碼)
- ASP.NET 使用application與session對(duì)象寫的簡(jiǎn)單聊天室程序
- php socket實(shí)現(xiàn)的聊天室代碼分享
- nodejs實(shí)現(xiàn)的一個(gè)簡(jiǎn)單聊天室功能分享
- Java基于socket實(shí)現(xiàn)簡(jiǎn)易聊天室實(shí)例
- Python實(shí)現(xiàn)的使用telnet登陸聊天室實(shí)例
- php+html5基于websocket實(shí)現(xiàn)聊天室的方法
- ASP.NET網(wǎng)站聊天室的設(shè)計(jì)與實(shí)現(xiàn)(第3節(jié))
- AngularJS+Node.js實(shí)現(xiàn)在線聊天室
- ASP建立一個(gè)簡(jiǎn)單的聊天室
- php實(shí)現(xiàn)簡(jiǎn)易聊天室應(yīng)用代碼
- chat.asp聊天程序的編寫方法
相關(guān)文章
javascript asp教程第十三課--include文件
javascript asp教程第十三課--include文件...2007-03-03簡(jiǎn)單的ASP分頁(yè)代碼(測(cè)試正確)
簡(jiǎn)單的ASP分頁(yè)代碼(測(cè)試正確)...2007-03-03javascript asp教程More About Recordsets
javascript asp教程More About Recordsets...2007-03-03查看所有的Server Variables的環(huán)境變量
查看所有的Server Variables的環(huán)境變量...2007-02-02- aspjpeg是一款非常強(qiáng)大的圖片處理組件,純英文版本。不過早已經(jīng)有免費(fèi)版和破解版,但是對(duì)其進(jìn)行詳細(xì)與深入介紹的文章卻是不多,即使有也只牽涉到圖片縮略和圖片水印??赡苁且?yàn)榧冇⑽牡木壒?/div> 2006-06-06
最新評(píng)論