無重新整理聊天室技術實現方法(ASP相關)_PHP
來源:互聯網
上載者:User
關鍵字
相關
方法
實現
聊天室
技術
重新整理
無重新整理聊天室技術實現方法
一、統一名詞
文字框:顯示聊天內容的架構頁面
輸入框:輸入聊天資訊的架構頁面
重新整理框:自重新整理擷取最新聊天資訊的架構頁面,該頁面不直接顯示出來
二、如何?
實現無重新整理,就是要在當前文字框聊天內容後面不斷的添加新的聊天資訊。
實現的方式是“添加新資訊”,而不是“重新重新整理”。
三、技術要點
實現像chat.163.com的無閃爍重新整理的聊天室要用到的關鍵代碼:
1.自重新整理:
2.向html檔案寫代碼:
四、例子
1.frame.asp頁面。最簡單的包含三個架構頁
文字框frametext.htm;name=frametext
輸入框frameinput.asp;
重新整理框framerefresh.asp;
2.文字框frametext.htm內容:
最簡單的常值內容。略
3.輸入框frameinput.asp內容:
略
4.重新整理框framefresh.asp內容(關鍵)
......
<%
'此處用代碼擷取最新的聊天資訊
'最新資訊儲存在數組ArrRecord()
'OutNum參數紀錄是否有新的聊天紀錄出現
%>
.....
<%
if OutNum>0 then '對於使用者來講,如果有新的資訊的話,則輸出新資訊,否則不
輸出
response.write ""
end if
%>
.....
五、相關問題
1.自重新整理存在的一個問題是焦點定位問題(也就是自動滾屏的問題)。使用者在文
本框看到的都是第一次進入chatroom看到的內容的位置,不會自動滾屏到新資訊
的位置,必須滾動滾動欄才可以。
在chat.163.com,它通過使用者點選“自動滾屏”的方法來實現。其實就是選擇“
自動滾屏”,程式將啟用控制文字框滾屏的一個js程式,關鍵區段為:
function ScrollWindow()
{
.....
this.scroll(0, 65000); //將文字框scroll到指定的位置。這裡選定(0,65000)
,就是指向最左下角的位置,由於螢幕高度才600不到,所以在一個使用者聊天過程
中,幾乎永遠不可能達到(0,65000)的位置。這樣就保證了螢幕永遠滾到最底層。
setTimeout('scrollWindow();',200); //迴圈。否則只滾動一次是沒用的
}
2.清屏。如果不清屏,一直開著聊天視窗,文字框文字內容將永無止境的增加。
清屏可以通過reload 文字框頁面的方法實現。