这是一个完全基于js的应用程序,区别于一般的web应用,它是oaop。大概需要一些什么样的工作呢?
大概的概念:
1、容器
是的,需要容器。容器的两个目的:布局和管理组件。组件之间的相互通信以及影响都需要容器来协调。管理组件之间的状态,组件需要向容器进行注册。对组件传播过来的事件,容器需要做出处理,调用相关其他组件的方法或者忽略或者继续向上一级容器传播。
2、组件
组件的目的是完全屏蔽对dom编程的依赖,同时屏蔽底层的浏览器事件,例如鼠标单击、双击等等,对这些事件进行完全的封装。组件有着自己的生命周期:初始化、渲染、重画、销毁等等。由组件完成页面的渲染工作,例如节点、画板、连线等等。
3、模型
在页面进行建模是必要的,例如活动节点、流程等等,这些模型与组件衔接,它们之间的状态互相影响,比如节点组件名称的改变实际影响的是所对于节点模型的属性。画板节点的增加实际也会给响应的流程定义模型新增一个活动节点。
4、与服务器交互
与服务器的交互完全基于xml。流程定义模型有着自己的xml方法,由xml解析为模型,由模型解析为xml,双向的过程。本地存储。很自然的选择。
可能的难点:
最大的难点就是组件的实现,事件的处理以及传播机制。
开发的过程:
1、底层库的选择
面向对象的开发方式,底层库需要完成的工作:继承、接口实现、事件的统一处理接口、element DOM编程的封装。
2、基本组件的开发
画板、图形组件、连线组件、弹出面板、简单表格组件、树等等。封装基本的事件。可以定制事件。
3、容器的开发,管理组件
组件实际也是容器的实现,比如画板的概念。画板中节点之间的互相影响。
4、加入模型的支持
5、xml与模型之间的js解析
参考:
ext是一个不错的参考,但是太笨重,功能越多越缓慢,轻量实现。主要参考其中容器以及组件的概念。
draw2d 实现太简单,基本就是一个图形库,考虑其中对图形组件的实现。
荣浩原创,转载请注明出处:)
JS的流程设计器,我们需要什么
最新推荐文章于 2023-10-12 16:53:07 发布