精彩的人生

          好好工作,好好生活

          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 閱讀(532) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 新竹市| 荔浦县| 北京市| 长治县| 娄烦县| 朝阳区| 松潘县| 天台县| 沧源| 宁国市| 米林县| 斗六市| 淮南市| 上栗县| 沾化县| 垦利县| 陈巴尔虎旗| 天峨县| 道真| 东城区| 孝感市| 永顺县| 桐庐县| 阳曲县| 高雄市| 贵州省| 德化县| 喀喇| 定安县| 乐清市| 祥云县| 英山县| 玉龙| 红原县| 中西区| 禹城市| 南木林县| 射阳县| 江川县| 乌苏市| 车致|