国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

數據庫聊天室的“無刷新”技術要點

2019-11-18 22:16:21
字體:
來源:轉載
供稿:網友
聊天室是網絡實時交互的最常應用之一。聊天室的制作要解決好以下問題。
1、誰在發言
2、講給誰聽
3、講些什么
與ICQ不同,ICQ 的數據流是一對一的關系。只要解決好上面三個問題就
可以實現。
聊天室由于存在一對多、多對一、一對一等多種數據關系,因此就有一個
數據的存放問題。
asp 聊天室的數據存放一般有三種形式: 一是用全局變量application
session對象。這種形式速度快效果好,但系統資源消耗太大。二是應用讀
數據庫實現。這種方法簡明但服務器頻繁讀寫數據據庫很累。第三種可用
讀寫TXT文件完成。適合簡單的聊天室。
三種方法都有一個共性的特點:客戶端要獲取新的聊天數據,必需刷新
調用。刷新時間過短,屏幕晃動厲害,刷新時間過長,等待時間太多感速度
太慢。于是人們分別用觸發刷新與自動刷新結合從感覺上得到改善。二是利
用隱藏幀進行刷新再把內容加在顯示幀上,形成所謂“無刷新”聊天室,解
決了屏幕晃動問題。
“無刷新”聊天室要解決的技術問題有:
一、如何判斷新數據
二、新數據的提取
三、如何讓客戶斷在有新數據時能及時更新
以上一、二用Application很容易實現,但第三個問題不容易解決。用數據
庫做聊天室,第三個問題相對容易,但第一、二個問題要費點精神。筆者用
數據庫做的聊天室采用了“無刷新”技術,沒有用一個Application,主要
的技術要點是:
在數據庫中另設置只有一個字段的表,字段名:BS
用戶每次登陸讀一次BS 的值。 設一個Session別作為每一個具體用戶的
當前發言次數,初始為 BS-1。
用戶每發言一次使 BS + 1(Session 值不此時不加,形成Session與BS差)
在隱性刷新幀上判斷:
如果 BS 與 Session 有差,則讀數據庫將新數據讀出并在顯示幀顯示。
Session+1 表示新數據已經讀出,不再重讀。
反復此過程,直到所有新數據據讀出并顯示。此時 BS = Session
上述方法解決了上面講的 判斷新數據和新數據的提取的問題。由于新數據
本身沒有任何變化,依然原樣存放在數據庫中,客戶端無論時間差多大,只
要自身的Session與BS有差,一當讀庫,差多少多多少條記錄,解決了客戶端
刷新差異帶來的不顯示問題。
以上方法,當然也可以用Application來設置 BS。還有一但BS 到了一定值
時(看同時發言人數而定),要重置為 1 。
以上方法在 IIS 4 平臺,局域網、因特網通過。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华亭县| 遵义县| 霸州市| 德安县| 沙雅县| 临海市| 衡水市| 拉孜县| 扎囊县| 乌海市| 遂溪县| 门源| 乌拉特前旗| 金昌市| 西盟| 广河县| 邛崃市| 赣州市| 建宁县| 义乌市| 邵东县| 鸡泽县| 上饶县| 长海县| 黎平县| 长子县| 桑植县| 西昌市| 吴忠市| 教育| 宽城| 贡觉县| 象州县| 孟津县| 望奎县| 盈江县| 东光县| 涿州市| 平陆县| 丹东市| 交城县|