posts - 193,  comments - 520,  trackbacks - 0
          這是一個(gè)完全基于js的應(yīng)用程序,區(qū)別于一般的web應(yīng)用,它是oaop。大概需要一些什么樣的工作呢?

          大概的概念:

          1、容器
           是的,需要容器。容器的兩個(gè)目的:布局和管理組件。組件之間的相互通信以及影響都需要容器來協(xié)調(diào)。管理組件之間的狀態(tài),組件需要向容器進(jìn)行注冊(cè)。對(duì)組件傳播過來的事件,容器需要做出處理,調(diào)用相關(guān)其他組件的方法或者忽略或者繼續(xù)向上一級(jí)容器傳播。

          2、組件
           組件的目的是完全屏蔽對(duì)dom編程的依賴,同時(shí)屏蔽底層的瀏覽器事件,例如鼠標(biāo)單擊、雙擊等等,對(duì)這些事件進(jìn)行完全的封裝。組件有著自己的生命周期:初始化、渲染、重畫、銷毀等等。由組件完成頁面的渲染工作,例如節(jié)點(diǎn)、畫板、連線等等。

          3、模型
           在頁面進(jìn)行建模是必要的,例如活動(dòng)節(jié)點(diǎn)、流程等等,這些模型與組件銜接,它們之間的狀態(tài)互相影響,比如節(jié)點(diǎn)組件名稱的改變實(shí)際影響的是所對(duì)于節(jié)點(diǎn)模型的屬性。畫板節(jié)點(diǎn)的增加實(shí)際也會(huì)給響應(yīng)的流程定義模型新增一個(gè)活動(dòng)節(jié)點(diǎn)。

          4、與服務(wù)器交互
           與服務(wù)器的交互完全基于xml。流程定義模型有著自己的xml方法,由xml解析為模型,由模型解析為xml,雙向的過程。本地存儲(chǔ)。很自然的選擇。
           
          可能的難點(diǎn):
          最大的難點(diǎn)就是組件的實(shí)現(xiàn),事件的處理以及傳播機(jī)制。

          開發(fā)的過程:

          1、底層庫的選擇
           面向?qū)ο蟮拈_發(fā)方式,底層庫需要完成的工作:繼承、接口實(shí)現(xiàn)、事件的統(tǒng)一處理接口、element DOM編程的封裝。

          2、基本組件的開發(fā)
           畫板、圖形組件、連線組件、彈出面板、簡(jiǎn)單表格組件、樹等等。封裝基本的事件。可以定制事件。

          3、容器的開發(fā),管理組件
           組件實(shí)際也是容器的實(shí)現(xiàn),比如畫板的概念。畫板中節(jié)點(diǎn)之間的互相影響。

          4、加入模型的支持

          5、xml與模型之間的js解析

          參考:
          ext是一個(gè)不錯(cuò)的參考,但是太笨重,功能越多越緩慢,輕量實(shí)現(xiàn)。主要參考其中容器以及組件的概念。
          draw2d 實(shí)現(xiàn)太簡(jiǎn)單,基本就是一個(gè)圖形庫,考慮其中對(duì)圖形組件的實(shí)現(xiàn)。


          http://www.aygfsteel.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:)
          posted on 2008-02-13 22:08 ronghao 閱讀(2986) 評(píng)論(4)  編輯  收藏 所屬分類: ajax相關(guān)

          FeedBack:
          # re: js的流程設(shè)計(jì)器,我們需要什么
          2008-02-14 08:24 | 久城
          Extjs幾乎符合你的要求,只是Ext與服務(wù)器的交互是基于JSON的...  回復(fù)  更多評(píng)論
            
          # re: js的流程設(shè)計(jì)器,我們需要什么
          2008-02-14 21:55 | ronghao
          @久城
          ext太龐大了,太笨重,對(duì)于特定的應(yīng)用來說很多功能都是多余的。比如說布局,一兩種足以,都可以直接寫死。  回復(fù)  更多評(píng)論
            
          # re: js的流程設(shè)計(jì)器,我們需要什么
          2008-02-17 12:28 | 51dlkzw
          非常不錯(cuò)呀……   回復(fù)  更多評(píng)論
            
          # re: js的流程設(shè)計(jì)器,我們需要什么
          2008-11-01 15:07 | kkfc
          ext/dojo等的js lib會(huì)隨著JS開源engine越來越快  回復(fù)  更多評(píng)論
            
          <2008年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          2425262728291
          2345678

          關(guān)注工作流和企業(yè)業(yè)務(wù)流程改進(jìn)。現(xiàn)就職于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

          常用鏈接

          留言簿(38)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          常去的網(wǎng)站

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 汝南县| 高州市| 商河县| 福清市| 莆田市| 玛纳斯县| 三台县| 无锡市| 益阳市| 苗栗县| 汶上县| 湟源县| 绥滨县| 信丰县| 温宿县| 满城县| 射阳县| 乐安县| 上饶市| 云和县| 济宁市| 荥阳市| 阿拉善左旗| 出国| 黄大仙区| 家居| 溧水县| 广南县| 桓台县| 和硕县| 普兰县| 滁州市| 疏勒县| 余干县| 镇原县| 衢州市| 福贡县| 沙河市| 京山县| 叶城县| 永济市|