精彩的人生

          好好工作,好好生活

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            147 Posts :: 0 Stories :: 250 Comments :: 0 Trackbacks

          原文地址:http://www.duduwolf.com/post/chatroom_for_AJAX.asp


          Aether之邀寫一個基礎點的AJAX操作實例,想來想去就寫一個聊天室吧,以前寫AJAX時一來偷懶,二來為了簡單,都用純文本或者javascript數組進行交互,這次改成純粹的xml操作。想得時候很簡單,無非就處理發送消息,接收消息,登陸和退出這幾種事件,但真正要寫的時候還是頗費周折,主要是ASP對Session間的消息(對象)傳遞功能太弱了,只能在Application、數據庫、自定義服務端組件三種方法中挑一個,自定義服務端組件先Pass了,既然要寫一個輕量級的,數據庫能不用就不用了,最后還是盯上了Application。

          聊天室最重要的功能就是一個用戶發出消息后所有用戶都要能接收到,接受到消息后應該給這則消息一個標記或者刪除操作。ASP的Application對象可以實現Session間的數據交互,再結合類似于Map的Scripting.Dictionary這個內置對象,應該就能實現我想要的效果。但是在實際編寫過程中發現Scripting.Dictionary對象實例根本無法存儲到Application中,查了MSDN后才知不允許將OBJECT和自定義組件以外的對象存儲到Application中,包括自定義Class,暈,只得另想辦法,最后選定用數組方式解決。

          客戶端我用javascript的prototype(原型)功能寫了一個ChatRoom類,用面向對象的方式實現了發送接收消息,登錄和退出。下面就是聊天窗口,請輸入昵稱登錄后就能開始聊天了:)程序還有很多bug,實在無心調試了。

          下載:http://www.duduwolf.com/test/chatRoom.asp.txt

          <script language="javascript" type="text/javascript" src="http://www.duduwolf.com/test/chatRoom.asp?act=script"></script>
          <div id="chatRoom"></div>
          <script>var chat = new ChatRoom('chat', document.getElementById('chatRoom'), 500, 400);</script>

          posted on 2006-01-20 11:57 hopeshared 閱讀(529) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 大名县| 连山| 肥城市| 西乡县| 茶陵县| 秦皇岛市| 内江市| 长治县| 彰武县| 治县。| 巴青县| 普洱| 合江县| 金坛市| 嘉鱼县| 福州市| 高密市| 醴陵市| 迁安市| 增城市| 和龙市| 谢通门县| 邳州市| 延边| 宁波市| 徐闻县| 丁青县| 迭部县| 社会| 湖口县| 新蔡县| 齐河县| 湘乡市| 茶陵县| 广丰县| 庆元县| 耒阳市| 新巴尔虎左旗| 长沙市| 和林格尔县| 右玉县|