5 四月, 2006

RIA,在浏览器上动态显示Chart

应该区分浏览器上的两种页面,一种是网站显示,一种是web Application

作为一个网站,当然要照顾到bookmark 功能,要考虑back功能,要关心是否能被搜索引擎找到,还要尽量保证普通用户对网页浏览的一贯体验。而webApplicaton是原来的c/s结构的应用的B/S版,更注重桌面程序的用户体验。 基于这样的认识,我认为,做网站开发,UI的设计,还是应该以XHTML+CSS为主,Ajax用来部分改善UE,不宜过度使用,FlashXUL等其它RIA技术更是如此。

最近公司要开发一个高压侧变压器在线监测和诊断系统,初步决定采用B/S结构,而动态显示图表功能必不可少。譬如分析或者统计的结果曲线,饼图,2维或多维柱图,温度计,仪表盘等。这就是一个典型的桌面应用程序模块。要保证能够在IE6上运行,争取兼容Firefox。采用哪种技术实现呢?

优点:界面够漂亮,够“动态”

问题:除了学习曲线过长外,Flash在图文/列表处理方面的表现,也让人担忧。

参考:展望2006年,Flash來未有來

Ajax动态读取后台数据,通过JSFlash object进行交互。

要求:图表Flash要做得比较通用,设计Flash的人最好能了解一些ActionScript

问题:还是需要学习ActionScript

参考:Flash+Javascript framework Open Source Flash - flashjs ActionScript 2.0入門系列教學文章

W3C的标准是SVG,这个VML肯定是没戏了。IE5开始支持,不过在稍后版本,包括IE6的典型安装中,就已经不再包含VML控件了。当然,现在的IE6还支持,但是要手工打开“允许二进制脚本”安全选项。不过,至少在IE里还能用,看了几个例子,都还不错。

参考:

VML实现国际钟表,VML Clock

Chart Widget Mozilla或者Opera上直接用<canvas>,在IE上利用VML封装成IECanvas,不过,我的IE6上显示始终有问题,脚本出错

还需要等待,等IE开始支持了再说。在这之前,还不如使用VML

使用JS+div,在浏览器上直接绘图。学软件专业的人一定倍感亲切吧。一个椭圆可能包含数百个div,数量是多了点,不过绘制和clear的速度都不慢。

优点:纯粹。这里只有JSXHTML

参考:JavaScript VectorGraphics library

问题:过多的对象生成和释放,不知道会不会引起浏览器内存泄漏

MozillaXUL,微软的XAML,还在研究,一时半会儿恐怕用不起来。而且,几个例子,只看到一些常用控件的实现,对于Chart,尤其是vector chart,并未涉及。从发展上看,矢量图的方向还应该是SVGXUL/XAML,关注的应该是客户端RIA的整体实现方案

参考:XUL ZK Engine, ZK demo


最新回复
发表评论


















Bold Italic Link