這是一個完全基于js的應用程序,區別于一般的web應用,它是oaop。大概需要一些什么樣的工作呢?
大概的概念:
1、容器
是的,需要容器。容器的兩個目的:布局和管理組件。組件之間的相互通信以及影響都需要容器來協調。管理組件之間的狀態,組件需要向容器進行注冊。對組件傳播過來的事件,容器需要做出處理,調用相關其他組件的方法或者忽略或者繼續向上一級容器傳播。
2、組件
組件的目的是完全屏蔽對dom編程的依賴,同時屏蔽底層的瀏覽器事件,例如鼠標單擊、雙擊等等,對這些事件進行完全的封裝。組件有著自己的生命周期:初始化、渲染、重畫、銷毀等等。由組件完成頁面的渲染工作,例如節點、畫板、連線等等。
3、模型
在頁面進行建模是必要的,例如活動節點、流程等等,這些模型與組件銜接,它們之間的狀態互相影響,比如節點組件名稱的改變實際影響的是所對于節點模型的屬性。畫板節點的增加實際也會給響應的流程定義模型新增一個活動節點。
4、與服務器交互
與服務器的交互完全基于xml。流程定義模型有著自己的xml方法,由xml解析為模型,由模型解析為xml,雙向的過程。本地存儲。很自然的選擇。
可能的難點:
最大的難點就是組件的實現,事件的處理以及傳播機制。
開發的過程:
1、底層庫的選擇
面向對象的開發方式,底層庫需要完成的工作:繼承、接口實現、事件的統一處理接口、element DOM編程的封裝。
2、基本組件的開發
畫板、圖形組件、連線組件、彈出面板、簡單表格組件、樹等等。封裝基本的事件。可以定制事件。
3、容器的開發,管理組件
組件實際也是容器的實現,比如畫板的概念。畫板中節點之間的互相影響。
4、加入模型的支持
5、xml與模型之間的js解析
參考:
ext是一個不錯的參考,但是太笨重,功能越多越緩慢,輕量實現。主要參考其中容器以及組件的概念。
draw2d 實現太簡單,基本就是一個圖形庫,考慮其中對圖形組件的實現。
http://www.tkk7.com/ronghao 榮浩原創,轉載請注明出處:)
posted on 2008-02-13 22:08
ronghao 閱讀(2984)
評論(4) 編輯 收藏 所屬分類:
ajax相關