精彩的人生

          好好工作,好好生活

          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
          主站蜘蛛池模板: 杂多县| 江油市| 东莞市| 九江市| 上饶县| 古田县| 柳河县| 温宿县| 潜山县| 宁强县| 磐安县| 内江市| 岚皋县| 康乐县| 慈利县| 中宁县| 青浦区| 大连市| 宁波市| 湖州市| 龙泉市| 武川县| 保定市| 吐鲁番市| 剑川县| 大新县| 芜湖市| 岫岩| 柘城县| 曲周县| 饶平县| 内丘县| 桂东县| 镇宁| 江西省| 揭东县| 连山| 文安县| 青阳县| 许昌市| 衡南县|