何時,紗窗外,風搖翠竹

          常用鏈接

          統計

          最新評論

          • 1.?re: 慎用AJAX框架
          • AJAX是中國技術領域的紅燈區。。想爽,但又怕潛伏著危險。。。
          • --阿斯頓飛
          • 2.?re: 慎用AJAX框架
          • 評論內容較長,點擊標題查看
          • --夏如嘏
          • 3.?re: 慎用AJAX框架
          • ajax 要懂的原理,同意樓主,框架慎用
          • --驕傲
          • 4.?re: 慎用AJAX框架
          • @讀書、思考、生活
            2、bug滿天飛,那就說明是水平不到家
            您的水平能高到沒有bug?
          • --樓主
          • 5.?re: 慎用AJAX框架
          • 只要你懂xmlhttp,為什么非要用ajax呢,我從2000年開始使用xmlhttp,ajax剛出來的時候看了一眼,冷笑一聲。所以爭論沒有意義,到處都是新瓶裝老酒的故事
          • --挨踢的貨

          頓悟 - 基于事件驅動模型架構Flex程序

             原文地址: http://www.pjade.com/html/study/20070703/27.html

              這些天一直在為Flex程序中的各個組件之間有效的傳遞參數,協調組件間的行為等問題感到困惑。由于Flex程序實際上是一個運行在客戶機上的的客戶端程序,因此在Flex內部組件之間無法像B/S程序基于HTTP協議那樣發一個請求,由服務器端通過一個標準接口讀出參數,處理并做出響應。也就是說用表單、URL的方式傳遞參數和控制流程肯定是行不通的。前一段時間一直嘗試像Javascript中那樣用函數調用,甚至是全局變量來做,感覺越做越復雜,程序的OO結構也受到很大的破壞,十分的煩惱。

               今天整理書架時無意中看到了壓了多年箱底的那本《深入淺出MFC》,一下子回想起VC和MFC框架中的最核心的事件處理機制,再想到以前研究flexstore源碼時看見過基于事件來控制程序行為的代碼,頓時有一種醍醐灌頂的感覺!! Flex 的客戶端程序基本上是一種基于組件的C/S程序,而當年VC、VB、Dephi等等C/S程序無一例外的都是基于事件驅動的!當年侯先生正是由于在《深入淺出MFC》一書中深入的剖析了MFC框架中的事件流的機制,揭示了在API的背后數據是如何被分發和處理的過程而名揚五洲。“消息為基礎、事件驅動之”這句話則是在Windows編程中最基本和最重要的概念,也是C/S程序編程中的最重要的概念之一,在搞了多年B/S程序開發之后,我卻是已經將這句當年自以為完全理解的觀念拋到腦后去了,想來也挺有意思,看來雖著RIA的發展和推廣,事件驅動模型這一度幾乎被棄用東西又要大行其道了。

              其實一直以來事件驅動從來沒有遠離過我們,網頁中一個對某個按鈕的onclick事件的觸發,便是事件驅動的一個應用,但是我卻忘記了在這些基于組件的實現的編程模型中的事件驅動所起到的靈魂作用。和B/S程序中請求/響應的模式不同,事件驅動實現的是請求/訂閱的方式,二者從架構到編程都有很大的區別,我用B/S的思維模式去寫事件驅動的程序,不亂才怪!事件驅動的技術原理實際上是比較簡單的,Observer模式對它有很好的總結,感興趣的朋友可以自己看一下。我這次最大的問題實際是來自于思維模式上,其實只需要:放棄用請求觸發行為的想法,改用事件觸發!

              當然Flex程序并不是像VC那樣的純C/S程序,它一樣需要用請求/響應的方式完成很多的功能。今天簡單的思考了一下,覺得Flex程序應該這樣架構:

          1. Flex程序的整體架構要基于事件驅動模型來架構(事實是這種基于組件的編程方式你必須基于事件驅動來構架)。這樣的好處不光是易于實現功能,而且由于事件驅動松耦合的特點,也方便于設計一個很好的系統結構。
          2. 對Flex程序本身,各個模塊也基于事件驅動的模型按分層、分組件的方式層層搭建。
          3. 對于需要和Flex程序配合使用的服務器端程序,還是要嚴格按照MVC模式構建。
          4. 對于需要和服務器端交互的flex客戶端程序模塊,利用flex遠程調用的異步特性,在向服務器端請求,接收到響應數據后觸發相應的事件,依然走事件驅動的路子。

          posted on 2007-07-05 10:12 weidy 閱讀(2166) 評論(3)  編輯  收藏 所屬分類: RIA

          評論

          # re: 頓悟 - 基于事件驅動模型架構Flex程序 2007-07-16 12:17 abent

          呵呵,深有同感啊,其實Flex應用就是一種批上B/S外衣的C/S,要按照C/S的思維和模式去設計.  回復  更多評論   

          # re: 頓悟 - 基于事件驅動模型架構Flex程序 2007-07-16 23:10 weidy

          @abent
          兄臺也在開發Flex程序么,好的很啊,有機會多交流。Flex程序的架構確實給我們提出了新的挑戰,客戶端C/S,整體又要B/S,然后還需要能脫離B/S單獨轉C/S,模式很新。我倒是聽說有一些框架可用,不過目前還不打算用,還是想自己先探索一下,也可以理解的深一些。  回復  更多評論   

          # re: 頓悟 - 基于事件驅動模型架構Flex程序 2007-10-15 14:15 烈焰波痕

          說Flex是披上B/S外衣的C/S,也許吧。但要我說的話,是以Server端的開發思路開發Client。
          如果要用Flex開發RIA, 客戶端的MVC模式是必須存在的,而不僅僅是Event驅動,Event是一種控制流,但是根本上Model的建模才是最主要的,這要求不僅僅在Server端建模,而且在Client端也需要建模,而不再是以前B/S那樣,客戶端僅僅是一個表現層和用戶交互層。
          之所以以前B/S開發忽略了pub/sub,那是因為它在客戶端本地根本就沒有建模,本地根本就是一個SnapShot。在服務器端開發MVC可能沒有事件么?  回復  更多評論   

          主站蜘蛛池模板: 尉氏县| 绥棱县| 临海市| 巨鹿县| 穆棱市| 昌黎县| 霸州市| 天祝| 大丰市| 永春县| 福鼎市| 利川市| 炎陵县| 翼城县| 顺义区| 长顺县| 四川省| 遂平县| 保亭| 元谋县| 泗阳县| 凤翔县| 高邮市| 内乡县| 大洼县| 盐津县| 板桥市| 宿迁市| 新晃| 温州市| 永定县| 保靖县| 望城县| 长岛县| 社旗县| 双城市| 玛纳斯县| 区。| 梁河县| 铜陵市| 黄骅市|