無刷新聊天室技術(shù)完成方法(ASP相關(guān))
發(fā)表時間:2023-08-01 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]無刷新聊天室技術(shù)實現(xiàn)方法 一、統(tǒng)一名詞 文字框:顯示聊天內(nèi)容的框架頁面 輸入框:輸入聊天信息的框架頁面 刷新框:自刷新獲取最新聊天信息的框架頁面,該頁面不直接顯示出來 二、如何實現(xiàn) 實現(xiàn)無刷新,...
無刷新聊天室技術(shù)實現(xiàn)方法
一、統(tǒng)一名詞
文字框:顯示聊天內(nèi)容的框架頁面
輸入框:輸入聊天信息的框架頁面
刷新框:自刷新獲取最新聊天信息的框架頁面,該頁面不直接顯示出來
二、如何實現(xiàn)
實現(xiàn)無刷新,就是要在當(dāng)前文字框聊天內(nèi)容后面不斷的添加新的聊天信息。
實現(xiàn)的方式是“添加新信息”,而不是“重新刷新”。
三、技術(shù)要點
實現(xiàn)像chat.163.com的無閃爍刷新的聊天室要用到的關(guān)鍵代碼:
1.自刷新:
<meta http-equiv="refresh" content="2">
2.向html文件寫代碼:
<script>
top.frametext.document.write("text");
</script>
四、例子
1.frame.asp頁面。最簡單的包含三個框架頁
文本框frametext.htm;name=frametext
輸入框frameinput.asp;
刷新框framerefresh.asp;
2.文本框frametext.htm內(nèi)容:
最簡單的文本內(nèi)容。略
3.輸入框frameinput.asp內(nèi)容:
略
4.刷新框framefresh.asp內(nèi)容(關(guān)鍵)
......
<%
'此處用代碼獲取最新的聊天信息
'最新信息保存在數(shù)組ArrRecord()
'OutNum參數(shù)紀(jì)錄是否有新的聊天紀(jì)錄出現(xiàn)
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="2"><!--定時刷新獲取最新信息-->
.....
<%
if OutNum>0 then '對于用戶來講,如果有新的信息的話,則輸出新信息,否則不
輸出
response.write "<script language=""javascript"">"
for i = 1 to outnum
response.write "top.frametext.document.write("""& ArrRecord(i) &""")
;"
next
response.write "</script>"
end if
%>
.....
五、相關(guān)問題
1.自刷新存在的一個問題是焦點定位問題(也就是自動滾屏的問題)。用戶在文
本框看到的都是第一次進入chatroom看到的內(nèi)容的位置,不會自動滾屏到新信息
的位置,必須滾動滾動欄才可以。
在chat.163.com,它通過用戶點選“自動滾屏”的方法來實現(xiàn)。其實就是選擇“
自動滾屏”,程序?qū)⒂每刂莆谋究驖L屏的一個js程序,關(guān)鍵部分為:
function ScrollWindow()
{
.....
this.scroll(0, 65000); //將文本框scroll到指定的位置。這里選定(0,65000)
,就是指向最左下角的位置,由于屏幕高度才600不到,所以在一個用戶聊天過程
中,幾乎永遠不可能達到(0,65000)的位置。這樣就保證了屏幕永遠滾到最底層。
setTimeout('scrollWindow();',200); //循環(huán)。否則只滾動一次是沒用的
}
2.清屏。如果不清屏,一直開著聊天窗口,文本框文字內(nèi)容將永無止境的增加。
清屏可以通過reload 文本框頁面的方法實現(xiàn)。