路由技术解决页面跳转问题路由技术解决页面跳转问题
引言 页面跳转路由技术,算来并不是一个很新的技术,但却是一项有用的技术。在网站有很多需要跳转的
页面,而我们又需要动态地在主页面中加载子页面时,就会用到这门技术。以我们公司现在这个项目为例,前
台是由FLEX实现,整个系统可能只有几个application组成,所有的功能点均由module实现,而Module本身无法
实现各module之间的跳转,只能通过application实现对各个module的动态加载来达到跳转的功能。但实际情况
中,一个项目中可能有上千个module,公司的每个人都有可能分到几十个甚至几百个module的任务。所有的
module每次跳转都要通过触发一个不同的函数来实现的话
引言引言
页面跳转路由技术,算来并不是一个很新的技术,但却是一项有用的技术。在网站有很多需要跳转的页面,而我们又需要
动态地在主页面中加载子页面时,就会用到这门技术。以我们公司现在这个项目为例,前台是由FLEX实现,整个系统可能只
有几个application组成,所有的功能点均由module实现,而Module本身无法实现各module之间的跳转,只能通过application
实现对各个module的动态加载来达到跳转的功能。但实际情况中,一个项目中可能有上千个module,公司的每个人都有可能分
到几十个甚至几百个module的任务。所有的module每次跳转都要通过触发一个不同的函数来实现的话,这样每一个
application就会有几百个这样的跳转函数,那可维护性将因此变得极其差。
然而如果使用路由技术,那情况就完全不一样了。路由技术的原理其实并不是很难理解,就是通过字符串拼接一个我们需
要跳转的url地址,传递不同的参数,我们就可以达到跳转到不同页面的目的。为了动态地在application加载module,把实现
跳转的函数从application移到了module,由各个module自行决定自己要跳转的目的地址,各个module只要把组装完整的url传递
给application,在application中只要有一个函数就能实现页面跳转的功能。从几百个函数到一个函数,application将因此减少几
千行代码。有利是,由于把页面跳转的任务权利分到了各个module,这样各个模块内的module变得较之前的独立,每个人只
需把自己的module做好就可以了,不用去考虑整个系统。如此,系统的集成将变得非常简单,维护也变得更加独立,就不会
出现改动了一个module而使整个系统都改变的情况了。
由此,在我们的application中,如在mainFrame.mxml中,只需定义一个实现跳转的函数。
如:
public function jumpTo(toUrl:String):void
{
m1.url=toUrl;
m1.loadModule();
}
在各个module中,必须要把url完全组装好,包括需要传递类似ID的参数的情况,然后调用application中的jumpTo()函
数。
如,在一个module中点击修改按钮,在这个module中,加一个函数
public function displayUpdate():void
{
var fromTable:String=this.DG.selectedItem.fromTable as String;
if(fromTable=="large")
{
var url:String = "eqm/updateLarge.swf?eqmID="+ this.DG.selectedItem.eqmID as
String;
}
else if(fromTable=="small")
{
var url:String="eqm/updateSmall.swf?eqmID="+this.DG.selectedItem.eqmID as
String;
}
评论0