企業應用的互聯網化-談Flex在企業級開發中的應用
Flex技術在企業級開發中的應用
作者:池建強
從我個人的從業經歷來看,在長達十幾年的軟件研發過程中,無論是研發的產品或實施的項目,大部分是在為企業客戶提供服務。當然,期間我還從事過兩年左右的互聯網應用的開發。早期的互聯網應用開發和企業級應用開發的區別還是很明顯的,無論是技術、架構、業務和用戶體驗,都有很大的不同。舉個簡單的例子,比如開發語言,最早在2000年左右,大家都用Perl和Asp做網站,后續陸續開始使用PHP、Ruby和Python這樣的動態語言來構建豐富多彩的互聯網應用,當然這其中也少不了Flex技術。而為企業客戶構建的應用,則更多地傾向于靜態語言,比如Java和C#等。當然隨著技術的發展,這兩者之間的交集越來越多,大家會越來越多的發現,很多大規模的互聯網站點是基于Java或C#構建的,也有一些企業應用開始使用動態語言。這一點也很明顯地展示了企業級應用與互聯網的融合。
什么是企業級應用?
說了這么多,需要為企業級應用系統做一個定位。事實上這個概念在業界并不是十分清晰,沒有一個明確的定義,什么是企業級,為什么叫企業級呢?有的觀點是從系統規模上劃分,有的是從團隊規模上劃分,有的是從開發周期上劃分。我個人對企業級應用系統的定義比較簡單,主要是用來區分互聯網應用和個人軟件。什么是互聯網應用呢,四大門戶(如新浪、網易等)、百度和淘寶、各種SNS網站、博客系統和微博系統等等;個人軟件呢,就是指安裝在個人PC上的客戶端軟件,例如編輯器、繪圖軟件、開發工具等。這兩種類型的應用和軟件受眾都是普通大眾,而企業級應用系統的受眾是企業客戶,是為企業服務的,企業級應用系統的使用者是企業內外部客戶以及與企業業務關聯的人員。
2009年,在技術層面可以說是一個風起云涌的年份,互聯網像一條巨大而充滿吸力的紐帶,把各種IT服務相關的技術、應用和實現都吸引過來,形成了一個完整而龐大的互聯網生態圈。那身處其中的我們認識到了什么呢?隨著我們持續的通過技術、平臺、產品和項目為企業客戶提供服務,我們發現企業應用不再局限在Intranet內部,企業應用系統的互聯網化趨勢越來越明顯,主要體現在以下三個方面:
其次,構建Flex圖形組件框架,對Flex提供的控件進行封裝、擴展,形成針對企業應用的個性化RIA控件庫。在這一階段我們主要是基于Adobe的開源項目Cairngorm進行構建的。Cairngorm是一個基于Flex技術的微內核的MVC框架,設計簡潔而易于擴展,非常適合構建自己的RIA控件庫。
說了這么多,需要為企業級應用系統做一個定位。事實上這個概念在業界并不是十分清晰,沒有一個明確的定義,什么是企業級,為什么叫企業級呢?有的觀點是從系統規模上劃分,有的是從團隊規模上劃分,有的是從開發周期上劃分。我個人對企業級應用系統的定義比較簡單,主要是用來區分互聯網應用和個人軟件。什么是互聯網應用呢,四大門戶(如新浪、網易等)、百度和淘寶、各種SNS網站、博客系統和微博系統等等;個人軟件呢,就是指安裝在個人PC上的客戶端軟件,例如編輯器、繪圖軟件、開發工具等。這兩種類型的應用和軟件受眾都是普通大眾,而企業級應用系統的受眾是企業客戶,是為企業服務的,企業級應用系統的使用者是企業內外部客戶以及與企業業務關聯的人員。
2009年,在技術層面可以說是一個風起云涌的年份,互聯網像一條巨大而充滿吸力的紐帶,把各種IT服務相關的技術、應用和實現都吸引過來,形成了一個完整而龐大的互聯網生態圈。那身處其中的我們認識到了什么呢?隨著我們持續的通過技術、平臺、產品和項目為企業客戶提供服務,我們發現企業應用不再局限在Intranet內部,企業應用系統的互聯網化趨勢越來越明顯,主要體現在以下三個方面:
- Intranet到Internet的轉變:企業應用系統由局域網轉到互聯網,企業應用開始要求多瀏覽器支持,國際化的支持,全球業務的互聯互通。同時企業應用不再滿足簡單的表單和表格界面,富互聯網應用(RIA)的需求應運而生,企業客戶越來越倡導用戶體驗,RIA也是我們后續要重點討論的話題。
- 企業應用的內容轉變:除了企業的核心業務系統,這樣一些需求漸漸浮出水面:交互性門戶系統、電子商務平臺、企業級2.0(博客、Wiki、RSS和微博等)、企業級SNS(社區平臺)和無線企業應用等。
- 需求的轉變:除了功能需求,客戶對于安全、性能、大容量和大并發等特性愈發關注,在可預見的未來,企業應用一定是構建在互聯網而非局域網,可能是在云端,也可能在其他的新技術上實現
作為現階段的IT服務提供商,必須從技術層面和業務層面去適應和支撐這樣的趨勢變化,否則我們會變得步履艱難。
好了,談了這么多,主要講了一個趨勢的變化。下面我們來看一下在互聯網和企業應用中都能發揮巨大作用的RIA技術。
好了,談了這么多,主要講了一個趨勢的變化。下面我們來看一下在互聯網和企業應用中都能發揮巨大作用的RIA技術。
RIA簡介和選擇Flex的原因
RIA技術的全稱是富互聯網應用(Rich Internet Application),RIA首先應該是一個網絡應用程序,其次它還要具有桌面應用程序的特征和功能。可以這樣理解,如果你的桌面程序能在網絡上(目前主要是基于瀏覽器)運行,并且能保持其原來的功能和特征,那么我們就可以稱它們為RIA應用(富互聯網客戶端應用)。
目前RIA的主流技術主要包括Adobe公司的Flex,微軟公司的Silverlight和Java陣營的JavaFX。Flash由于Flex SDK的支撐,很早就從單純的動畫展示轉入RIA領域,而且由于Flash的普及,Flex目前應該是三大技術體系中市場份額最大、應用最廣泛的技術;Silverlight是微軟推出的跨瀏覽器和跨平臺的插件,能在微軟的.NET上交付炫目的多媒體體驗和有豐富交互功能的Web應用,已經對Flex有了很大的沖擊;JavaFX是未被收購前的Sun公司在2007年推出的用來對抗Flex和Silverlight的桌面應用,但由于起步較晚,目前應用并不廣泛,但其Java的原生性和開源性質對Java社區的開發人員還是有很大的吸引力。
基于以上三種技術,我們最終選了Flex做企業級的富客戶端應用開發,雖然蘋果公司的CEO喬布斯老師已經開始公開表示不在蘋果的移動設備上支持Flash,盡管HTML5和CSS3來勢洶洶,但是在企業應用開發這樣一個不是非常激進的領域,考慮到Flash廣泛的群眾基礎,最終我們還是選擇了Flex。
事實上在互聯網應用中,RIA技術早已散發出奪目的光輝和迷人的魅力,無論是電子商務中的產品展示,還是SNS網站上的交友游戲,亦或是游戲和教育領域里的交互性設計,已經為廣大互聯網用戶帶來了無以倫比的客戶體驗。那么在企業應用系統中,企業客戶還在滿足于呆板的樹形結構、簡單的表格和文字性質的描述嗎?就我們的經驗來說,2008年開始,企業客戶就開始向我們提出這樣的需求了,例如操作復雜的表單、圖形化內容展示、動態報表繪圖、圖形化流程配置、流媒體視頻播放和文檔播放等,這一切都是在瀏覽器上進行的。對于大部分這樣的需求,我們都是笨手笨腳的使用了Javascript、Extjs、Jquery和Activex等前端技術勉強實現了,對于不能實現的需求,我們只能靦腆的告訴客戶,這些功能我們還實現不了,或者說瀏覽器不應該有這樣的操作等等,當然這種話事實上也很難說服我們自己。
直到我們決定采用Flex技術來實現富客戶端操作之后,我們才發現很多問題在Flex面前迎刃而解了。在Full-Stack系統中,如果Ajax技術和Flex技術配合形成前端組件體系,將大大提高開發效率、系統性能和改進客戶體驗。
Flex是Adobe公司開發的可以輸出成基于Flash Player來運行的互聯網應用程序。Flex 基于標準的語言,與各種可擴展用戶界面及數據訪問組件結合起來,使開發人員能夠快速構建具有豐富數據演示、強大客戶端邏輯和集成多媒體的應用程序。Flex目前最新版本是4,一個Flex應用程序應該有兩種語言代碼完成,那就是ActionScript和MXML。ActionScript是一種面向對象的腳本語言,MXML則是一種標記語言,非常類似于大家所熟悉的超文本標記語言(HTML),擴展標記語言(XML)。簡單來說MXML用來描述界面,ActionScript用來處理業務邏輯。
以下是Flex的一些基本特點,也是我們采用Flex的重要原因之一:
目前RIA的主流技術主要包括Adobe公司的Flex,微軟公司的Silverlight和Java陣營的JavaFX。Flash由于Flex SDK的支撐,很早就從單純的動畫展示轉入RIA領域,而且由于Flash的普及,Flex目前應該是三大技術體系中市場份額最大、應用最廣泛的技術;Silverlight是微軟推出的跨瀏覽器和跨平臺的插件,能在微軟的.NET上交付炫目的多媒體體驗和有豐富交互功能的Web應用,已經對Flex有了很大的沖擊;JavaFX是未被收購前的Sun公司在2007年推出的用來對抗Flex和Silverlight的桌面應用,但由于起步較晚,目前應用并不廣泛,但其Java的原生性和開源性質對Java社區的開發人員還是有很大的吸引力。
基于以上三種技術,我們最終選了Flex做企業級的富客戶端應用開發,雖然蘋果公司的CEO喬布斯老師已經開始公開表示不在蘋果的移動設備上支持Flash,盡管HTML5和CSS3來勢洶洶,但是在企業應用開發這樣一個不是非常激進的領域,考慮到Flash廣泛的群眾基礎,最終我們還是選擇了Flex。
事實上在互聯網應用中,RIA技術早已散發出奪目的光輝和迷人的魅力,無論是電子商務中的產品展示,還是SNS網站上的交友游戲,亦或是游戲和教育領域里的交互性設計,已經為廣大互聯網用戶帶來了無以倫比的客戶體驗。那么在企業應用系統中,企業客戶還在滿足于呆板的樹形結構、簡單的表格和文字性質的描述嗎?就我們的經驗來說,2008年開始,企業客戶就開始向我們提出這樣的需求了,例如操作復雜的表單、圖形化內容展示、動態報表繪圖、圖形化流程配置、流媒體視頻播放和文檔播放等,這一切都是在瀏覽器上進行的。對于大部分這樣的需求,我們都是笨手笨腳的使用了Javascript、Extjs、Jquery和Activex等前端技術勉強實現了,對于不能實現的需求,我們只能靦腆的告訴客戶,這些功能我們還實現不了,或者說瀏覽器不應該有這樣的操作等等,當然這種話事實上也很難說服我們自己。
直到我們決定采用Flex技術來實現富客戶端操作之后,我們才發現很多問題在Flex面前迎刃而解了。在Full-Stack系統中,如果Ajax技術和Flex技術配合形成前端組件體系,將大大提高開發效率、系統性能和改進客戶體驗。
Flex是Adobe公司開發的可以輸出成基于Flash Player來運行的互聯網應用程序。Flex 基于標準的語言,與各種可擴展用戶界面及數據訪問組件結合起來,使開發人員能夠快速構建具有豐富數據演示、強大客戶端邏輯和集成多媒體的應用程序。Flex目前最新版本是4,一個Flex應用程序應該有兩種語言代碼完成,那就是ActionScript和MXML。ActionScript是一種面向對象的腳本語言,MXML則是一種標記語言,非常類似于大家所熟悉的超文本標記語言(HTML),擴展標記語言(XML)。簡單來說MXML用來描述界面,ActionScript用來處理業務邏輯。
以下是Flex的一些基本特點,也是我們采用Flex的重要原因之一:
- 可視化開發,通過拖拽方式開發界面
- 對于有XML和腳本開發經驗的人員,很容易上手
- 可實現表現層與后臺的真正分離
- 豐富的媒體支持和動畫效果,良好的用戶體驗
- 支持多種通訊方式和數據格式
- 同時支持客戶端和瀏覽器模式
- 跨平臺,支持各種操作系統和瀏覽器
基于Flex構建企業級應用開發平臺
與普通開發者使用Flex技術不同的是,我們采用了一種組件化的方式引入Flex,這是因為我們對這部分技術的引入并不是從零開始,為了應對企業級應用開發的需求,我們很早就構建了一個企業級應用開發平臺——GAP(Global Application Platform)平臺,這是一個Full-Stack的應用開發平臺,除了底層框架、組織權限、工作流引擎、數據字典等等,還包括界面框架、通用Web控件,Ajax控件等,Flex的引入是對現在平臺的補充和完善。
基于以上考慮,我們對Flex的應用分為三個階段。
與普通開發者使用Flex技術不同的是,我們采用了一種組件化的方式引入Flex,這是因為我們對這部分技術的引入并不是從零開始,為了應對企業級應用開發的需求,我們很早就構建了一個企業級應用開發平臺——GAP(Global Application Platform)平臺,這是一個Full-Stack的應用開發平臺,除了底層框架、組織權限、工作流引擎、數據字典等等,還包括界面框架、通用Web控件,Ajax控件等,Flex的引入是對現在平臺的補充和完善。
基于以上考慮,我們對Flex的應用分為三個階段。
首先,進行Flex與GAP平臺的整合,包括組件化集成、前后臺通信機制的設計,在這一階段我們主要采用了ant和xdoclet技術進行組件的打包、資源文件的合并,采用Spring BlazeDS Integration技術與GAP平臺框架進行交互訪問,通信方式采用了Felx提供的RemoteObject。(Spring BlazeDS Integration是Adobe與Spring共同聯合開發一個開源項目,其目標是開發者可以利用Spring開發模型通過Flex、BlazeDS、Spring以及Java技術創建RIA )。
其次,構建Flex圖形組件框架,對Flex提供的控件進行封裝、擴展,形成針對企業應用的個性化RIA控件庫。在這一階段我們主要是基于Adobe的開源項目Cairngorm進行構建的。Cairngorm是一個基于Flex技術的微內核的MVC框架,設計簡潔而易于擴展,非常適合構建自己的RIA控件庫。
第三,使用Flex技術解決企業應用中的實際問題。
下面我們主要從實際應用的角度來看一下Flex在企業級系統開發中能夠做什么。
一、企業組織結構的圖形化展示
凡是為企業開發過系統的人都知道,企業的組織結構管理和權限管理幾乎是每個項目或產品不可或缺的基礎組件之一。從功能角度分析,GAP平臺的組織權限系統已經非常完善了,無論是多關系的組織結構、細粒度的權限控制,都可以非常好地滿足客戶對于組織管理和安全的需求。直到有一天一個客戶提出,能不能把那棵呆板的組織機構樹變成組織結構圖,如果能支持圖形化操作就更好了。聽到項目組給我們反饋的這個需求,第一個反應就是拒絕,因為實現起來太麻煩了。
原有的組織結構樹如下圖所示:
客戶需要的展示方式可能是:
也可能是:
同時企業客戶還希望能夠進行圖形化操作管理,這種功能如果通過Javascript來實現無疑是困難的,而Flex技術在處理類似的功能時則具備先天的優勢。首先Flex是一種可以運行在網絡上的客戶端技術,它提供了一套成熟的圖形化控件和類庫,可以很容易的實現圖形和布局控制。同時,Flex可以通過多種通訊方式(HttpService、RemoteObject、WebService)與Server端的服務進行數據交互,使得圖形化操作變得非常簡單,例如把人員拖到另一部門,雙擊顯示該機構的詳細信息等。最終我們也是通過Flex技術實現了客戶的需求。
下面我們主要從實際應用的角度來看一下Flex在企業級系統開發中能夠做什么。
一、企業組織結構的圖形化展示
凡是為企業開發過系統的人都知道,企業的組織結構管理和權限管理幾乎是每個項目或產品不可或缺的基礎組件之一。從功能角度分析,GAP平臺的組織權限系統已經非常完善了,無論是多關系的組織結構、細粒度的權限控制,都可以非常好地滿足客戶對于組織管理和安全的需求。直到有一天一個客戶提出,能不能把那棵呆板的組織機構樹變成組織結構圖,如果能支持圖形化操作就更好了。聽到項目組給我們反饋的這個需求,第一個反應就是拒絕,因為實現起來太麻煩了。
原有的組織結構樹如下圖所示:

客戶需要的展示方式可能是:

也可能是:

同時企業客戶還希望能夠進行圖形化操作管理,這種功能如果通過Javascript來實現無疑是困難的,而Flex技術在處理類似的功能時則具備先天的優勢。首先Flex是一種可以運行在網絡上的客戶端技術,它提供了一套成熟的圖形化控件和類庫,可以很容易的實現圖形和布局控制。同時,Flex可以通過多種通訊方式(HttpService、RemoteObject、WebService)與Server端的服務進行數據交互,使得圖形化操作變得非常簡單,例如把人員拖到另一部門,雙擊顯示該機構的詳細信息等。最終我們也是通過Flex技術實現了客戶的需求。
二、表單操作
Flex同樣可以構造出復雜的表單功能,操作便捷,響應迅速,適應企業不同場景的需求。例如這樣一個基于Flex技術的表格,看似簡單,實際上是包含了排序、過濾、表頭拖拽、表頭固定、合并等功能,類似的功能如果用Ajax的方式來實現代碼量會很大,但是在Flex中,這些特性基本上是原生的,或經過簡單開發即可實現,代碼量非常小,而且性能遠遠超過普通列表控件和Ajax列表控件。經測試,在同一場景下,通過Flex列表控件加載1000條數據,平均響應時間是0.1秒,Ajax控件0.5秒,普通刷新頁面的方式最慢,從發出請求到返回并顯示數據,大概需要1秒鐘。
三、流程設計器
2004年我們開始研發工作流平臺,其核心功能是工作流引擎和流程設計器。為了開發出Web-Based(基于Web)的流程設計器,我們投入了極大的人力物力,最終采用ActiveX控件實現了復雜的流程設計、流程監控等功能。到目前為止基于瀏覽器的流程設計和監控仍然是我們的功能特色之一。但是隨著技術的發展,基于Activex控件的流程設計器越來越顯示出局限性,例如不支持多瀏覽器,不支持國際化,在各種Windows和IE版本中的自動安裝經常會出現問題,最重要的是擴展起來比較復雜。
Flex同樣可以構造出復雜的表單功能,操作便捷,響應迅速,適應企業不同場景的需求。例如這樣一個基于Flex技術的表格,看似簡單,實際上是包含了排序、過濾、表頭拖拽、表頭固定、合并等功能,類似的功能如果用Ajax的方式來實現代碼量會很大,但是在Flex中,這些特性基本上是原生的,或經過簡單開發即可實現,代碼量非常小,而且性能遠遠超過普通列表控件和Ajax列表控件。經測試,在同一場景下,通過Flex列表控件加載1000條數據,平均響應時間是0.1秒,Ajax控件0.5秒,普通刷新頁面的方式最慢,從發出請求到返回并顯示數據,大概需要1秒鐘。

三、流程設計器
2004年我們開始研發工作流平臺,其核心功能是工作流引擎和流程設計器。為了開發出Web-Based(基于Web)的流程設計器,我們投入了極大的人力物力,最終采用ActiveX控件實現了復雜的流程設計、流程監控等功能。到目前為止基于瀏覽器的流程設計和監控仍然是我們的功能特色之一。但是隨著技術的發展,基于Activex控件的流程設計器越來越顯示出局限性,例如不支持多瀏覽器,不支持國際化,在各種Windows和IE版本中的自動安裝經常會出現問題,最重要的是擴展起來比較復雜。
下圖就是基于ActiveX技術的流程設計器。看上去很美,但的確存在著問題。事實上我們正在積極準備基于Flex技術對流程設計器進行改造,改造完成后,上面提到的問題即可迎刃而解。技術的進步帶來應用的改進,所以我一直強調,技術創新才是軟件企業的原動力。
四、動態圖表
通過圖表描述業務數據,加強數據的展現能力。每個圖表都可以支持參數的動態變化,響應點擊事件,實現動態效果,而這些幾乎不需要額外編寫代碼。傳統的報表工具或制圖工具,例如BIRT或JFreeChart等,處理報表圖片時都是通過流的方式輸入靜態圖片,一旦生成,就是靜態頁面,用戶無法與之交互。而使用Flex進行圖表的開發,則可以輕易突破 這一障礙,Flex提供了大量內置的圖表控件,用來進行圖表展示,在瀏覽器上的表現方式為Flash,可以在生成圖表之后,繼續實現前后臺數據的交互和展示。例如使用CandlestickChart控件來實現蠟燭圖的動態展示。從一下兩張圖可以很清楚的看出,通過選擇不同的選項,可以顯示不同的趨勢變化,點擊圖元還可以顯示該圖元的相關數據。這些復雜的數據操作基本上是由CandlestickChart控件完成的,開發者只需要組裝數據即可。事實上要實現這個功能樣例,只需要100行左右的代碼。


四、動態圖表
通過圖表描述業務數據,加強數據的展現能力。每個圖表都可以支持參數的動態變化,響應點擊事件,實現動態效果,而這些幾乎不需要額外編寫代碼。傳統的報表工具或制圖工具,例如BIRT或JFreeChart等,處理報表圖片時都是通過流的方式輸入靜態圖片,一旦生成,就是靜態頁面,用戶無法與之交互。而使用Flex進行圖表的開發,則可以輕易突破 這一障礙,Flex提供了大量內置的圖表控件,用來進行圖表展示,在瀏覽器上的表現方式為Flash,可以在生成圖表之后,繼續實現前后臺數據的交互和展示。例如使用CandlestickChart控件來實現蠟燭圖的動態展示。從一下兩張圖可以很清楚的看出,通過選擇不同的選項,可以顯示不同的趨勢變化,點擊圖元還可以顯示該圖元的相關數據。這些復雜的數據操作基本上是由CandlestickChart控件完成的,開發者只需要組裝數據即可。事實上要實現這個功能樣例,只需要100行左右的代碼。

五、知識管理
企業信息化10年,積累了大量的數據、文件、視頻需要進行展示,通過Flex可以構建通用的播放器,利用流媒體技術、全文檢索技術實現企業內部的知識管理。類似的技術和功能在互聯網上已經不是什么新鮮事了,例如slideshare、youtube,國內的豆丁、優酷等,這些網站要么是基于文檔的管理,要么是基于視頻的處理,但它們的共同點是核心技術都采用了Flex。對于互聯網領域,領域的細分無疑是非常明智的,但是在企業級應用領域,企業客戶更關注的是應用的整合,我們擬基于Flex技術開發通用的前臺播放器,可以同事播放視頻和文檔,后臺采用Flash Midea Server和文件服務器,結合內容管理、全文檢索和標簽云技術,實現企業信息數據的全流程管理。
企業信息化10年,積累了大量的數據、文件、視頻需要進行展示,通過Flex可以構建通用的播放器,利用流媒體技術、全文檢索技術實現企業內部的知識管理。類似的技術和功能在互聯網上已經不是什么新鮮事了,例如slideshare、youtube,國內的豆丁、優酷等,這些網站要么是基于文檔的管理,要么是基于視頻的處理,但它們的共同點是核心技術都采用了Flex。對于互聯網領域,領域的細分無疑是非常明智的,但是在企業級應用領域,企業客戶更關注的是應用的整合,我們擬基于Flex技術開發通用的前臺播放器,可以同事播放視頻和文檔,后臺采用Flash Midea Server和文件服務器,結合內容管理、全文檢索和標簽云技術,實現企業信息數據的全流程管理。
六、動態商品展示
基于Flex技術的動態商品展示已經在很多中大型電子商務公司應用,通過Flex可以實現很多眩目的效果來進行商品展示,同時可以動態設置商品的屬性,讓客戶更好的了解商品細節,增加客戶粘度。這樣的技術在企業級應用中同樣適用,主要業務領域應該是企業的電子商務平臺。
基于Flex技術的動態商品展示已經在很多中大型電子商務公司應用,通過Flex可以實現很多眩目的效果來進行商品展示,同時可以動態設置商品的屬性,讓客戶更好的了解商品細節,增加客戶粘度。這樣的技術在企業級應用中同樣適用,主要業務領域應該是企業的電子商務平臺。
七、全鍵盤操作
某些特殊領域的客戶,比如要快速錄入大量數據,就會對全鍵盤操作有需求,要求在瀏覽器做的應用要能像Excel一樣全鍵盤操作,除了支持Tab加Enter鍵之外,還需要能夠支持四個方向鍵的操作支持,就像是Excel一樣,當單元格中的文字處于全選狀態的時候可以通過方向鍵進行導航。這樣的功能用普通的Javascript實現一個是復雜,而是會降低網頁性能。但用Flex來實現這種特殊場景就完全沒由這些問題,本質上來說Flex還是客戶端技術,可以很好的提供鍵盤支持。
某些特殊領域的客戶,比如要快速錄入大量數據,就會對全鍵盤操作有需求,要求在瀏覽器做的應用要能像Excel一樣全鍵盤操作,除了支持Tab加Enter鍵之外,還需要能夠支持四個方向鍵的操作支持,就像是Excel一樣,當單元格中的文字處于全選狀態的時候可以通過方向鍵進行導航。這樣的功能用普通的Javascript實現一個是復雜,而是會降低網頁性能。但用Flex來實現這種特殊場景就完全沒由這些問題,本質上來說Flex還是客戶端技術,可以很好的提供鍵盤支持。
......
結束語
企業客戶越來越認識到RIA技術對于企業應用的重要性,而Flex就是實現RIA重要的選擇之一。但是,無論技術也好,創新也好,有用的才是好的,不能因為技術而使用技術,因為創新而創新。就Flex而言,從根本上說它還是一個客戶端程序,所以一定會比普通的Web頁面更多的占用更多的客戶端資源,所以我不建議大家在構建企業應用時大量采用Flex技術,一定要用其所長。Flex在互聯網領域早已大放異彩,那么它是否能成功應用于企業應用的開發呢?不必拭目以待,我想這個答案無疑是肯定的。
企業客戶越來越認識到RIA技術對于企業應用的重要性,而Flex就是實現RIA重要的選擇之一。但是,無論技術也好,創新也好,有用的才是好的,不能因為技術而使用技術,因為創新而創新。就Flex而言,從根本上說它還是一個客戶端程序,所以一定會比普通的Web頁面更多的占用更多的客戶端資源,所以我不建議大家在構建企業應用時大量采用Flex技術,一定要用其所長。Flex在互聯網領域早已大放異彩,那么它是否能成功應用于企業應用的開發呢?不必拭目以待,我想這個答案無疑是肯定的。
身邊越來越多的人開始使用Mac,經常被問道Mac的使用問題和技術問題。遂決定,每天發布一則#Mac技巧#。同時發布于微博和微信公眾賬號“Mac技巧”,微信號sagacity-mac,有微信賬號的童鞋掃描下圖片或搜索微信號即可

浙公網安備 33010602011771號