aflax入门

关键字: 页面 长连接

RIA应该是近些年比较热门的web技术,譬如flex应用就已经相当的多。就网站开发而言,笔者比较喜欢flex能和后台服务器保持一个长链接的特性,在此基础上可以做很多扩展性的应用。但是众所皆知,flex本身有着加载速度慢等诸多缺点。为了扬长避短,于是有了 aflax

在baidu百科上:

引用
AFLAX是'A JavaScript Library for Macromedia's Flash™ Platform'的略称。


实际上我们可以认为 aflax是将flex和ajax结合的一种web应用。

socket

本身来说 aflax有着复杂且多样的功能,不过我们之前也说了,这里主要谈的还是在页面上保持一个长链接的应用。闲话不多说,上代码:

前端:

Html代码 复制代码
  1. <script type="text/javascript" src="js/lib/AFLAX/aflax.js"></script>  
  2. <script type="text/javascript">  
  3.     var aflax = new AFLAX("js/lib/AFLAX/aflax.swf");    
  4.     var connection = null;    
  5.     function go(){   
  6.         connection = new AFLAX.Socket(aflax, "127.0.0.1", 7777,    
  7.                 "onConnectEvent", "onDataEvent", "onCloseEvent");              
  8.     }   
  9.   
  10.     function onConnectEvent(val)     
  11.     {     
  12.         console.info(val);   
  13.     }     
  14.          
  15.     function onDataEvent(str)     
  16.     {     
  17.         console.info(str);    
  18.     }     
  19.          
  20.     function onCloseEvent()     
  21.     {     
  22.         console.info("the connection is already closed");    
  23.     }   
  24.     function go1(){   
  25.     }   
  26. </script>  
	<script type="text/javascript" src="js/lib/AFLAX/aflax.js"></script>
	<script type="text/javascript">
		var aflax = new AFLAX("js/lib/AFLAX/aflax.swf"); 
		var connection = null; 
		function go(){
			connection = new AFLAX.Socket(aflax, "127.0.0.1", 7777, 
					"onConnectEvent", "onDataEvent", "onCloseEvent"); 			
		}
	
		function onConnectEvent(val)  
	    {  
			console.info(val);
	    }  
	      
	    function onDataEvent(str)  
	    {  
	    	console.info(str); 
	    }  
	      
	    function onCloseEvent()  
	    {  
	    	console.info("the connection is already closed"); 
	    }
	    function go1(){
	    }
	</script>

引入的 aflax.js见附件
这里的js代码并不复杂
var aflax = new AFLAX("js/lib/ AFLAX/ aflax.swf");
建立一个名为 aflax的swf
connection = new AFLAX.Socket( aflax, "127.0.0.1", 7777,
"onConnectEvent", "onDataEvent", "onCloseEvent");
利用我们之前建立的swf,生成socket连接。几个参数分别是swf、服务器地址、服务器端口、连接事件监听、通信事件监听、关闭事件监听。鉴于 aflax官方文档算不上详细,初始化连接的时候可以以我们的例子为准。
几个监听器我并没有做复杂处理,只是简单的在firebug中输出结果。

后台:

后台代码只是一个很基本的serversocket,之前用 aflax做的一个网站聊天系统时,我们选用了xsocket和mina两套服务器socket方案,可供参考。

应用
现在来简单说一下 aflax有什么用
应该来说,现在网站前端后台交互非常频繁,以异步读取为主要卖点的ajax本身也是为此而生。不过ajax并不完美,他是单方向的读取,也就是仅仅局限于客户端主动向服务器请求。虽然这个问题,也有不少解决方案,比如定时读取、服务器推技术,但要不及时性差、要不实现复杂。另外当前后台交互过于频繁时,ajax不断的做http请求也会造成极大的压力。
aflax对于这一问题就是很好的解决方案,上面简单几行代码就建立了一个前后台之间的长链接。基于socket,及时性不再是问题。

事实上,我们周围的很多网站都大量运用了 aflax技术。比如校内网,页面底部的聊天机制就是最典型的 aflax应用,另外在新鲜事应用上,也利用 aflax做到了及时更新的特点。

其他

没有十全十美的事物, aflax就不能再没有flash的浏览器中运行。另外笔者不认为 aflax可以完全取代ajax,两者在某些方面完全可以配合使用。

最后附上 aflax官网
http://www. aflax.org/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值