激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP教程 - chat.asp聊天程序的編寫方法

chat.asp聊天程序的編寫方法

2019-06-22 16:28lijiao ASP教程

這篇文章主要介紹了chat.asp聊天程序的編寫方法,非常簡單的 ASP WEB 聊天室程序,你會發(fā)覺寫聊天室原來是一件這么容易、輕松的事,感興趣的小伙伴們可以參考一下

可能朋友們已經(jīng)在一些雜志上看到過 ASP 聊天程序的編寫方法,但作者在這里自己寫了一個更簡單的程序,僅僅使用了一個 .asp 文件。請將以下代碼剪貼到記事簿并保存為chat.asp。 

< %@ Language=VBScript %>

< %

Response.Buffer=true ' 設(shè)置輸出緩存,用于顯示不同頁面。

On error resume next ' 忽略程序出錯部分

If Request.ServerVariables("Request_Method")="GET" then

' 判斷客戶是以什么方式請求 WEB 頁面

'------------------------
' 客戶登陸界面 
'------------------------
%>

< form method="POST" action="chat.asp">< p>

< input type="text" name="nick" size="20" value="nick" style="background-color: rgb(192,192,192)">< br>

< input type="submit" value=" 進入聊天室 " name="B1" style="color: rgb(255,255,0); font-size: 9pt; background-color: rgb(0,128,128)">

< p>< input type="hidden" name="log" size="20" value="1">< br>< /p>

< /form>

< %

Response.End ' 結(jié)束程序的處理

Else

Response.clear ' 清空緩存中的內(nèi)容

dim talk

If Request.Form("nick")<>"" then

' 判斷客戶是是否在聊天界面中 

Session("nick")=Request.Form("nick")

End If
'------------------------'
客戶聊天界面 
'------------------------
%>

< form method="POST" action="chat.asp" name=form1> < p>< %=Session("nick")%> 說話:< input type="text" name="talk" size="50">< br>

< input type="submit" value=" 提交 " name="B1">

< input type="reset" value=" 取消 " name="B2">< /p>

< /form>

< A HREF="/asptest/shusheng/chat.asp"> 離開 < /a>< br>< br>

< %

If Request.Form("log")<>1 then

If trim(Request.Form("talk"))="" then

' 判斷用戶是否沒有輸入任何內(nèi)容 

talk=Session("nick")&" 沉默是金。"

Else

talk=trim(Request.Form("talk"))
' 去掉字符后的空格 
End If

Application.lock
Application("show")="< table border='0' cellpadding='0' cellspacing='0' width='85%' >< tr>< td width='100%' bgcolor='#C0C0C0'>〈/td〉〈/tr〉< tr>< td width='100%'>< font color='#0000FF'> 來自 "&Request.ServerVariables("remote_addr")&" 的 "&Session("nick")&time&" 說:< /font>"&talk&"〈/td〉〈/tr〉< tr>< td width='100%' bgcolor='#C0C0C0'>〈/td〉〈/tr〉< /table>< br>"&Application("show")
Application.UnLock

Response.Write Application("show")

End If

End If
%>

   chat.asp聊天程序的編寫方法

下面我們來對這個聊天室程序進行逐步的分析。 
   首先,由于聊天室的所有客戶都要能夠共享信息,所以不可避免的要用到具有應(yīng)用程序級變量的對象 Application,這是建立 Chat 程序的關(guān)鍵所在,所有的談話數(shù)據(jù)都存放在一個應(yīng)用程序級變量中,以便讓所有的客戶讀取。我們可以用所學(xué)過的 request 對象獲取客戶所輸入的談話,并保存在變量 talk 中 , 然后將 talk 的值存入應(yīng)用程序級變量 show 中,如下 :

< % Application("show")=talk&Application("show") %>

   接下來要考慮的是當不同的客戶同時向 Chat 應(yīng)用程序進行操作的時候如何處理。這個問題其實與在數(shù)據(jù)庫中的兩個用戶同時寫入同一個記錄一樣,如果兩個用戶同時對同一個應(yīng)用程序級變量進行寫操作,則一個用戶所作的修改會被另一個用戶的操作所覆蓋,所以,如果對 Appliation 對象數(shù)據(jù)的并發(fā)訪問不采取一定措施,則會導(dǎo)致當兩個用戶試圖同時對 Asp 聊天室應(yīng)用程序提交時,一個用戶的提交內(nèi)容會被另一個用戶的提交內(nèi)容所覆蓋,在被參加到會話中的任何人看到之前就消失了。為了避免這類問題的出現(xiàn),我們需要使用 Application 對象的 Lock 屬性來約束只允許當前的用戶編輯或增加 Application 對象的屬性,這樣當用戶開始修改應(yīng)用程序級變量開始,到 Application 對象被顯式地 Unlocked 為止,Application 對象的屬性只能被該用戶編輯,如果此時有其他用戶請求編輯 Application 對象,則這些用戶要排隊等待,知道應(yīng)用程序被 Unlock 為止。如下所示 : 
Application.lock
Application("show")=talk&Application("show")
Application.UnLock

   現(xiàn)在整個程序的核心部分你已經(jīng)了解了,下面考慮如何保存客戶信息,這里我們要用到一個會話級變量,即將客戶的 nick 保存在 Session 中。如:

Session("nick")=Request.Form("nick")
   最后,我們要考慮的是如何僅在一個 .asp 文件中處理各種事件 , 如 : 客戶登陸界面、客戶聊天界面。由于客戶第一次請求 .asp 文件時,采用的是簡單的 HTTP GET 方式,但是當客戶向頁面上的表單字段中增加的數(shù)據(jù)并向自身提交表單后,.asp 文件會再次被請求,不過這次數(shù)據(jù)是經(jīng)過 HTTP POST 方式進行傳遞的。文件被請求的方式可以用兩種方法來確定。一是測試 Request.Form 集合是否包含成員,若沒有,則表明沒有發(fā)送給表單處理的數(shù)據(jù)。二是使用 Request.ServerVariables("Request_Method") 變量。如果表單是通過 HTTP GET 方式被請求的,則這個變量會返回“GET”,如果表單被提交處理則返回“POST”。由于后一種方法對于確定文件的請求方式更直接,所以我們使用如下代碼進行判斷 : 
if Request.ServerVariables("Request_Method")="GET" then
   由于我們設(shè)置了 ASP 緩存,所以當程序判斷頁面請求方式為 GET 時,程序運行 Response.End,來結(jié)束后面的所有操作,否則則運行 Response.clear, 清空緩存中已有的內(nèi)容,并繼續(xù)程序的運行。這樣我們就得以用同一個 .asp 文件根據(jù)不同情況給客戶顯示不同的界面。
   好了,我已經(jīng)將這個 ASP Chat 程序的核心部分告訴大家了,剩下的一些細節(jié)性問題請各位自己讀程序吧,其實這個程序還存在很多不足之處,最大的毛病是我沒有寫自動刷新的功能,因此如果你在Chat 中不說話,那也就看不到其他客戶所說的話了。

Chat 在 Internet 中的魅力大家是知道的,其實,用 ASP 也完全能做到同 irc 類似的強大功能,當然這就需要寫更多的代碼,如果大家有興趣的話可以更深入的進行學(xué)習(xí),和大家交流經(jīng)驗成果。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产午夜免费视频 | 日本网站一区 | 狼人狠狠干 | 国产亚洲欧美视频 | 欧美自拍 | 神秘电影91 | 久久久涩 | 黄色一级电影网 | 一级做受大片免费视频 | 在线看一区二区三区 | 国产一级aa大片毛片 | 久久精品亚洲欧美日韩精品中文字幕 | 青青草免费观看完整版高清 | 国产一区二区免费在线观看视频 | 蜜桃成品人免费视频 | 一级毛片免费高清视频 | 性明星video另类hd | 久久久久久久久久91 | 国产三级在线视频观看 | 成年人在线免费播放视频 | 国产精品自拍av | 中文字幕欧美视频 | 国产精品一区99 | 国产在线地址 | 久久99精品视频在线观看 | 国产91成人| 国内精品伊人久久久久网站 | 一级做受大片免费视频 | 国产一国产精品一级毛片 | 久久精品国产99久久6动漫亮点 | 一级在线免费 | 欧美一区二区黄色 | 天天干天天透 | 免费在线一区二区 | 成人性视频欧美一区二区三区 | 日本视频网 | 成人三级黄色片 | 草莓视频久久 | 国产自在自线午夜精品视频在 | 日韩av有码在线 | 日韩美女电影 |