用Atlas来实现一个基于AJAX的无刷新Chatroom

Atlas是微软提供的一个AJAX工具包,封装了实现AJAX的所需的Java Script,使用起来非常简单,可以直接调用Web Service方法,然后通过Asynchronous Call的方式回调给客户端script,我用Atlas写了个简单的基于AJAX的无刷新chatroom:

Atlas Chatroom
http://www.worong.com/atlaschat/

为了引用Web Service,首先要在页面中添加以下客户端脚本:

None.gif < script language = " JavaScript "  src = " ChatService.asmx/js " />

用来显示和添加message的调用如下,对于每个方法的调用需要三个参数,分别是:Web Service方法的参数、调用成功后的回调函数、调用超时的回调函数。
 
ExpandedBlockStart.gif ContractedBlock.gif function  GetMsg()  dot.gif {
InBlock.gif    AtlsChat.ChatService.GetConversation(
InBlock.gif    
"",     //params
InBlock.gif
    OnComplete,     //Complete event
InBlock.gif
    OnTimeout       //Timeout event
InBlock.gif
    );
InBlock.gif    
InBlock.gif    
return false;
ExpandedBlockEnd.gif}

None.gif
ExpandedBlockStart.gifContractedBlock.gif
function  Add()  dot.gif {
InBlock.gif    document.getElementById('info').innerHTML 
= '<span style="background-color: yellow">&nbsp;postingdot.gif&nbsp;</span>';
InBlock.gif    AtlsChat.ChatService.Add(
InBlock.gif    document.getElementById('inputName').value.replace('\t','
&nbsp;&nbsp;&nbsp;')+'\t'+ document.getElementById('inputMsg').value.replace('\t','&nbsp;&nbsp;&nbsp;'),
InBlock.gif    GetMsg,
InBlock.gif    OnTimeout
InBlock.gif    );
InBlock.gif    
InBlock.gif    
return false;
ExpandedBlockEnd.gif}

None.gif    
None.gif
function  OnComplete(result) 
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        document.getElementById('msg').innerHTML 
= result;
InBlock.gif            
InBlock.gif        document.getElementById('info').innerHTML 
= "";
ExpandedBlockEnd.gif    }

None.gif
None.gif    
function  OnTimeout(result) 
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        document.getElementById('info').innerHTML 
= "time out";
ExpandedBlockEnd.gif    }


最后,需要在页面中引用Atlas提供的几个js:

None.gif < atlas:Script ID = " Script1 "  runat = " server "  Path = " ~/ScriptLibrary/AtlasCompat.js "  Browser = " Mozilla "   />
None.gif    
< atlas:Script ID = " Script2 "  runat = " server "  Path = " ~/ScriptLibrary/AtlasCompat.js "  Browser = " Firefox "   />
None.gif    
< atlas:Script ID = " Script3 "  runat = " server "  Path = " ~/ScriptLibrary/AtlasCompat.js "  Browser = " AppleMAC-Safari "   />
None.gif    
< atlas:Script ID = " Script4 "  runat = " server "  Path = " ~/ScriptLibrary/AtlasCore.js "   />
None.gif    
< atlas:Script ID = " Script5 "  runat = " server "  Path = " ~/ScriptLibrary/AtlasCompat2.js "  Browser = " AppleMAC-Safari "   />
None.gif
None.gif 
< script type = " text/xml-script " >
None.gif        
< page xmlns:script = " http://schemas.microsoft.com/xml-script/2005 " >
None.gif            
< references >
None.gif                
<!--  Repath the following src attributes, using regular client relative paths as necessary  -->
None.gif                
< add src = " ScriptLibrary/AtlasUI.js "   />
None.gif                
< add src = " ScriptLibrary/AtlasControls.js "   />
None.gif            
</ references >
None.gif            
< components >
None.gif            
</ components >
None.gif        
</ page >
None.gif   
</ script >

Atlas的官方网站是 http://beta.asp.net/default.aspx?tabindex=7&tabid=47,虽然提供了对非IE浏览器的支持,但是在Firefox中更新div会有刷新的感觉,在Mac的Safari上也根本就不work emsad.gif

转载于:https://www.cnblogs.com/roger/archive/2005/10/22/259600.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值