編程處理聊天室刷新問題(來源:賽迪網(wǎng)—中國計(jì)算機(jī)報(bào))
發(fā)表時(shí)間:2024-01-15 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]編程解決聊天室刷新問題 編寫聊天室程序時(shí),通常,我們有兩種把服務(wù)器數(shù)據(jù)傳到瀏覽器的方式。一種是在服務(wù)器端有信息后,把信息推到客戶端,這種方式使服務(wù)器的負(fù)載比較重;另一種就是在客戶端用refresh命令進(jìn)行刷新,大多數(shù)的聊天室都采用這種方式,這就使得我們?cè)跒g覽器上看到屏幕在不斷地刷新,非常影響瀏覽,...
編程解決聊天室刷新問題
編寫聊天室程序時(shí),通常,我們有兩種把服務(wù)器數(shù)據(jù)傳到瀏覽器的方式。一種是在服務(wù)器端有信息后,把信息推到客戶端,這種方式使服務(wù)器的負(fù)載比較重;另一種就是在客戶端用refresh命令進(jìn)行刷新,大多數(shù)的聊天室都采用這種方式,這就使得我們?cè)跒g覽器上看到屏幕在不斷地刷新,非常影響瀏覽,在網(wǎng)速慢的時(shí)候這種情況更為嚴(yán)重。
有沒有好的辦法能夠解決這個(gè)問題呢?答案是肯定的。下面筆者就給大家介紹一種用javascript來解決這種問題的方法。本方法雖然不是最好,但簡單易行,感興趣的讀者不妨一試。
首先,我們把網(wǎng)頁分成三幀。上面一幀為main.htm,用來顯示聊天的內(nèi)容;下面一幀為bottom.htm,用來輸入聊天內(nèi)容。然后,再增加一個(gè)隱藏幀list.asp,這個(gè)幀的作用就是使得輸入的信息能夠在main.htm幀中顯示出來。以下是聊天室的源程序。
frame.htm源程序如下:
〈html〉
〈head〉
〈title〉asp酷聊天室〈/title〉
〈meta http-equiv="content-type" content="text/html; arset=gb2312"〉
〈/head〉
〈frameset rows="0,403,92" cols="*"〉
〈frame src="list.asp" name="list"〉
〈frame src="main.htm" name="main1"〉
〈frame src="bottom.htm"〉
〈/frameset〉
〈noframes〉
〈body bgcolor="#ffffff"〉
〈/body〉〈/noframes〉
〈/html〉
main.htm源程序如下:
〈html〉
〈head〉
〈title〉聊天內(nèi)容顯示區(qū)〈/title〉
〈meta http-equiv="content-type" content="text/html; charset=gb2312"〉
〈/head〉
〈body bgcolor="#ffffff"〉
〈/body〉
〈/html〉
bottom.htm源程序如下:
〈html〉
〈head〉
〈title〉聊天內(nèi)容錄入?yún)^(qū)〈/title〉
〈meta http-equiv="content-type" content="text/html;charset=gb2312"〉 〈/head〉
〈body bgcolor="#ffffff"〉
〈form name="form1" method="post" action="list.asp" target="list"〉
〈div align="center"〉
〈input type="text" name="comment"〉
〈input type="submit" name="submit" value="寫寫看"〉
〈/div〉
〈/form〉
〈/body〉
〈/html〉
list.asp源程序如下:
〈script language="javascript"〉
function scrollon(){
top.main1.scroll(0, 65000);
}
top.main1.document.write(‘〈=request("comment")〉’)
top.main1.document.ite‘〈br〉’)
〈/script〉
用上面的方法在輸入聊天內(nèi)容時(shí),在聊天室顯示區(qū)中,用戶就可以看到內(nèi)容一行一行向下寫,而沒有出現(xiàn)屏幕不斷刷新的情況。大家只要改變list.asp,就可以從數(shù)據(jù)庫中或者從application對(duì)象中得到聊天內(nèi)容了。只是有可能list.asp需要刷新,但是對(duì)于在聊天室中聊天的人來說,聊天內(nèi)容是一行一行向下移動(dòng)的,他們是感覺不到屏幕刷新的。