RIA应该是近些年比较热门的web技术,譬如flex应用就已经相当的多。就网站开发而言,笔者比较喜欢flex能和后台服务器保持一个长链接的特性,在此基础上可以做很多扩展性的应用。但是众所皆知,flex本身有着加载速度慢等诸多缺点。为了扬长避短,于是有了aflax。
在baidu百科上:
[quote]AFLAX是'A JavaScript Library for Macromedia's Flash™ Platform'的略称。[/quote]
实际上我们可以认为aflax是将flex和ajax结合的一种web应用。
[b]socket[/b]
本身来说aflax有着复杂且多样的功能,不过我们之前也说了,这里主要谈的还是在页面上保持一个长链接的应用。闲话不多说,上代码:
[b]前端:[/b]
引入的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中输出结果。
[b]后台:[/b]
后台代码只是一个很基本的serversocket,之前用aflax做的一个网站聊天系统时,我们选用了xsocket和mina两套服务器socket方案,可供参考。
[b]应用[/b]
现在来简单说一下aflax有什么用
应该来说,现在网站前端后台交互非常频繁,以异步读取为主要卖点的ajax本身也是为此而生。不过ajax并不完美,他是单方向的读取,也就是仅仅局限于客户端主动向服务器请求。虽然这个问题,也有不少解决方案,比如定时读取、服务器推技术,但要不及时性差、要不实现复杂。另外当前后台交互过于频繁时,ajax不断的做http请求也会造成极大的压力。
aflax对于这一问题就是很好的解决方案,上面简单几行代码就建立了一个前后台之间的长链接。基于socket,及时性不再是问题。
事实上,我们周围的很多网站都大量运用了aflax技术。比如校内网,页面底部的聊天机制就是最典型的aflax应用,另外在新鲜事应用上,也利用aflax做到了及时更新的特点。
[b]其他[/b]
没有十全十美的事物,aflax就不能再没有flash的浏览器中运行。另外笔者不认为aflax可以完全取代ajax,两者在某些方面完全可以配合使用。
最后附上aflax官网
http://www.aflax.org/
在baidu百科上:
[quote]AFLAX是'A JavaScript Library for Macromedia's Flash™ Platform'的略称。[/quote]
实际上我们可以认为aflax是将flex和ajax结合的一种web应用。
[b]socket[/b]
本身来说aflax有着复杂且多样的功能,不过我们之前也说了,这里主要谈的还是在页面上保持一个长链接的应用。闲话不多说,上代码:
[b]前端:[/b]
<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中输出结果。
[b]后台:[/b]
后台代码只是一个很基本的serversocket,之前用aflax做的一个网站聊天系统时,我们选用了xsocket和mina两套服务器socket方案,可供参考。
[b]应用[/b]
现在来简单说一下aflax有什么用
应该来说,现在网站前端后台交互非常频繁,以异步读取为主要卖点的ajax本身也是为此而生。不过ajax并不完美,他是单方向的读取,也就是仅仅局限于客户端主动向服务器请求。虽然这个问题,也有不少解决方案,比如定时读取、服务器推技术,但要不及时性差、要不实现复杂。另外当前后台交互过于频繁时,ajax不断的做http请求也会造成极大的压力。
aflax对于这一问题就是很好的解决方案,上面简单几行代码就建立了一个前后台之间的长链接。基于socket,及时性不再是问题。
事实上,我们周围的很多网站都大量运用了aflax技术。比如校内网,页面底部的聊天机制就是最典型的aflax应用,另外在新鲜事应用上,也利用aflax做到了及时更新的特点。
[b]其他[/b]
没有十全十美的事物,aflax就不能再没有flash的浏览器中运行。另外笔者不认为aflax可以完全取代ajax,两者在某些方面完全可以配合使用。
最后附上aflax官网
http://www.aflax.org/