国产探花免费观看_亚洲丰满少妇自慰呻吟_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 平臺,局域網、因特網通過。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扶风县| 广德县| 沙田区| 东海县| 新昌县| 馆陶县| 旬阳县| 汤原县| 金门县| 东安县| 临朐县| 广州市| 咸丰县| 上犹县| 桐乡市| 大姚县| 新野县| 息烽县| 宁陵县| 舟曲县| 寿光市| 巴塘县| 阿巴嘎旗| 红河县| 武功县| 登封市| 陆丰市| 洛阳市| 缙云县| 江永县| 延长县| 东辽县| 谷城县| 商水县| 宝丰县| 巴青县| 综艺| 德庆县| 永宁县| 固安县| 突泉县|