最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP編程入門進(jìn)階(十一):Chat聊天程序

 更新時(shí)間:2007年01月03日 00:00:00   作者:  
通常的聊天室所采用的程序,也就是Chat程序了,其基本結(jié)構(gòu)原理是不會(huì)采用到數(shù)據(jù)庫的。那究竟采用什么技術(shù)呢?我們知道ASP變量當(dāng)中Session變量的作用是記錄單個(gè)用戶的信息,并且能跟蹤用戶的行為;Application對(duì)象的作用則起的全局變量,可以實(shí)現(xiàn)站點(diǎn)多個(gè)用戶之間在頁面中共享信息的。

那可以想象,在針對(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)前頁面接受的方式,如果為GET方式則會(huì)顯示“要求輸入昵稱”的表單頁。因?yàn)轫撁娴哪唤邮芊绞綖镚ET,當(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)入是無任何語句發(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變量的值。這樣就保證所有用戶都能看到的共享信息了。

未完待敘

相關(guān)文章

最新評(píng)論

台南县| 林口县| 容城县| 高平市| 万州区| 修水县| 和硕县| 和龙市| 潞城市| 南昌县| 芒康县| 鄂托克旗| 祥云县| 襄汾县| 德兴市| 九龙城区| 铅山县| 旺苍县| 耿马| 无极县| 丽水市| 鹤峰县| 册亨县| 清镇市| 嘉黎县| 留坝县| 岫岩| 大港区| 克什克腾旗| 新绛县| 靖江市| 二连浩特市| 合肥市| 故城县| 蛟河市| 杭锦后旗| 秦皇岛市| 乌拉特中旗| 泊头市| 措勤县| 昭通市|