5 四月, 2006
RIA,在浏览器上动态显示Chart
应该区分浏览器上的两种页面,一种是网站显示,一种是web
Application。
作为一个网站,当然要照顾到bookmark 功能,要考虑back功能,要关心是否能被搜索引擎找到,还要尽量保证普通用户对网页浏览的一贯体验。而webApplicaton是原来的c/s结构的应用的B/S版,更注重桌面程序的用户体验。 基于这样的认识,我认为,做网站开发,UI的设计,还是应该以XHTML+CSS为主,Ajax用来部分改善UE,不宜过度使用,Flash,XUL等其它RIA技术更是如此。
最近公司要开发一个高压侧变压器在线监测和诊断系统,初步决定采用B/S结构,而动态显示图表功能必不可少。譬如分析或者统计的结果曲线,饼图,2维或多维柱图,温度计,仪表盘等。这就是一个典型的桌面应用程序模块。要保证能够在IE6上运行,争取兼容Firefox。采用哪种技术实现呢?
- 全部采用Flash实现
优点:界面够漂亮,够“动态”
问题:除了学习曲线过长外,Flash在图文/列表处理方面的表现,也让人担忧。
- 图表部分用Flash实现,Ajax+js+flash
Ajax动态读取后台数据,通过JS与Flash object进行交互。
要求:图表Flash要做得比较通用,设计Flash的人最好能了解一些ActionScript。
问题:还是需要学习ActionScript
参考:Flash+Javascript framework Open
Source Flash - flashjs; ActionScript 2.0入門系列教學文章
- 使用微软的VML实现图表
W
参考:
VML实现国际钟表,VML Clock
Chart Widget 在Mozilla或者Opera上直接用<canvas>,在IE上利用VML封装成IECanvas,不过,我的IE6上显示始终有问题,脚本出错
- 直接使用SVG
还需要等待,等IE开始支持了再说。在这之前,还不如使用VML呢
- 全部采用JavaScript实现
使用JS+div,在浏览器上直接绘图。学软件专业的人一定倍感亲切吧。一个椭圆可能包含数百个div,数量是多了点,不过绘制和clear的速度都不慢。
优点:纯粹。这里只有JS和XHTML
参考:JavaScript
VectorGraphics library
问题:过多的对象生成和释放,不知道会不会引起浏览器内存泄漏
- XUL、XAML或其它
Mozilla的XUL,微软的XAML,还在研究,一时半会儿恐怕用不起来。而且,几个例子,只看到一些常用控件的实现,对于Chart,尤其是vector chart,并未涉及。从发展上看,矢量图的方向还应该是SVG。XUL/XAML,关注的应该是客户端RIA的整体实现方案
参考:XUL ZK Engine, ZK demo



