出版時間:2009-3-1 出版社:人民郵電出版社 作者:(美)塔伯(Tapper,J.) 頁數(shù):502 譯者:楊博,杜昱宏
Tag標簽:無
前言
Adobe Flex作為一種跨操作系統(tǒng)和瀏覽器的開源框架,已經(jīng)成為目前開發(fā)RIA最炙手可熱的技術!本書是Adobe公司官方培訓教材,通過一個完整的貼近實戰(zhàn)的網(wǎng)上雜貨店應用,用課程的形式,使讀者身臨其境地在40個小時內(nèi)輕松掌握Flex開發(fā)涉及的各種技術和技巧。學會構建用戶體驗絕佳的專業(yè)級應用程序。書中詳細介紹了Flex BIJilder、AIR、MXML-ActiollScript的概念,用戶與后臺數(shù)據(jù)交互的各種方式以及這些方式之間的區(qū)別,同時還討論了如何使用Flex組件,如何編寫你自己的Flex組件。
內(nèi)容概要
本書是Adobe公司官方教程,以課程的形式詳細介紹了如何用Flex 3開發(fā)一個完整的界面華麗的網(wǎng)上雜貨店應用程序,其中包括一個用于查看銷售細節(jié)實時圖的管理圖表,以及一個用于添加或編輯網(wǎng)上商店中要銷售商品的數(shù)據(jù)輸入程序。書中詳細介紹了Flex 3的相關知識點,具體包括構建、部署和調試RIA,使用功能強大的MXML語言布置應用程序,使用MXML和ActionScript構建自定義的UI組件,使用XML、基于SOAP的Web服務和遠程調用協(xié)議AMF連接到數(shù)據(jù)等?! ”緯m合各層次Flash和Flex開發(fā)人員閱讀。
作者簡介
JeffcTapper,Adobe技術社區(qū)最有影響力的專家之一,擁有豐富的Web開發(fā)經(jīng)驗,客戶包括摩根士丹利、IBM、道瓊斯等公司。他還是WebcDevelopers&DesignerscJournal雜志的編委。
MichaelcLabriola,Adobe技術社區(qū)最著名的專家之一,是Adobe開發(fā)人員中心的重要撰稿人,也是Adobe技術郵件列表中最受歡迎的“大俠”。除本書外,他還與JeffcTapper合著了《AIR權威指南》一書(人民郵電出版社即將出版)。
MatthewcBoles,Adobe公司客戶培訓團隊的技術主管,他還參與設計了Adobe開發(fā)領域的官方課程。
JamescTalbot,Adobe公司資深工程師,有豐富的Flex開發(fā)和培訓經(jīng)驗,幫助全世界許多用戶使用Adobe技術創(chuàng)建了各種重要應用。他也是ObjectcOrientedcActionScriptc2.0一書的作者。
書籍目錄
第1課 理解RIA1.1 理解計算機應用程序的演化過程1.2 超越基于頁面的架構1.3 明確RIA的優(yōu)勢1.3.1 企業(yè)經(jīng)理1.3.2 IT組織1.3.3 終端用戶1.4 各種RIA技術1.4.1 Ajax1.4.2 Flash1.4.3 Flex1.4.4 WPF、XAML、Silverlight和Expression1.5 學習收獲第2課 開始2.1 開始Flex應用程序開發(fā)2.2 創(chuàng)建項目和MXML應用程序2.3 理解Flex Builder 3工作平臺2.4 運行應用程序2.5 創(chuàng)建第二個應用程序頁面,然后進入設計模式2.6 準備下一課2.7 學習收獲第3課 布置界面3.1 學習容器相關知識3.2 用設計模式布置電子商務應用程序3.3 使用基于約束條件的布局3.3.1 使用相對父容器的約束條件3.3.2 使用增強型約束條件3.4 使用視圖狀態(tài)3.5 在源碼模式中布置應用程序3.6 學習收獲第4課 使用簡單的控件4.1 簡單控件簡介4.2 顯示圖片4.3 建立詳細信息視圖4.4 使用數(shù)據(jù)綁定將數(shù)據(jù)結構鏈接到簡單的控件4.5 使用Form布局容器布置簡單的控件4.6 將單選按鈕和數(shù)據(jù)字段添加到Dashboard4.7 學習收獲第5課 處理事件和數(shù)據(jù)結構5.1 理解事件處理5.1.1 理解一個簡單的例子5.1.2 用ActionScript函數(shù)處理事件5.1.3 調用事件處理函數(shù)時傳遞數(shù)據(jù)5.2 當creationComplete事件發(fā)生時建立數(shù)據(jù)結構5.3 使用來自事件對象的數(shù)據(jù)5.4 建立一個自定義的ActionScript類5.5 建立一個方法來創(chuàng)建對象5.6 建立購物車類5.7 學習收獲第6課 為控件使用遠程XML數(shù)據(jù)6.1 從HTTPService中獲取XML數(shù)據(jù)6.1.1 創(chuàng)建HTTPService對象6.1.2 調用send()方法6.1.3 使用返回的數(shù)據(jù)6.1.4 理解安全問題6.2 通過HTTPService獲取XML數(shù)據(jù)6.3 將HTTPService數(shù)據(jù)填入ArrayCollection6.3.1 使用ArrayCollection6.3.2 使用Collection作為數(shù)據(jù)提供者6.4 將數(shù)據(jù)填入ComboBox控件并用編程方法添加選項6.5 在Tree控件中使用XML數(shù)據(jù)6.5.1 理解E4X運算符6.5.2 將XML數(shù)據(jù)填入Tree控件6.6 獲取XML數(shù)據(jù)并將這些數(shù)據(jù)轉換為自定義類型的ArrayCollection6.7 對復雜數(shù)據(jù)結構使用數(shù)據(jù)綁定6.8 操作購物車數(shù)據(jù)6.8.1 將項目添加到購物車6.8.2 對ArrayCollection中的項目進行排序6.8.3 添加項目或者更新數(shù)量6.8.4 使用光標定位ShoppingCartItem6.9 添加Remove按鈕6.10 學習收獲第7課 用MXML創(chuàng)建組件7.1 介紹MXML組件7.1.1 理解創(chuàng)建自定義組件的基礎知識7.1.2 一步步創(chuàng)建自定義組件7.1.3 在應用程序架構中使用自定義組件7.2 創(chuàng)建可更新/刪除商品的組件,并將它實例化7.3 單擊Update和Delete按鈕時彈出商品信息7.4 創(chuàng)建另一個值對象7.5 為三個應用程序都創(chuàng)建數(shù)據(jù)管理器組件7.6 使用新的數(shù)據(jù)管理器組件7.7 實現(xiàn)添加商品的功能7.8 為Dashboard應用程序創(chuàng)建并使用組件7.9 學習收獲第8課 使用控件和Repeater控制數(shù)據(jù)集8.1 使用數(shù)據(jù)集8.1.1 理解HorizontalList和TileList組件8.1.2 實現(xiàn)labelFuntcion8.1.3 實現(xiàn)itemRenderer8.2 使用HorizontalList和itemRenderer顯示類別信息8.3 基于選中的類別顯示商品8.3.1 使用Repeater遍歷數(shù)據(jù)集8.3.2 從重復的組件中獲取數(shù)據(jù)8.3.3 定位Repeater建立的組件8.3.4 理解TileList和Repeater的性能差異8.3.5 基于類別顯示商品8.4 編寫狀態(tài)以顯示商品信息詳情8.5 將商品放入購物車8.6 學習收獲第9課 使用自定義事件9.1 理解松耦合架構的優(yōu)勢9.2 分發(fā)事件9.3 為組件聲明事件9.4 明確對自定義事件類的需求9.5 建立并使用CategoryEvent9.6 創(chuàng)建并使用ProductEvent類9.6.1 使用ProductEvent從購物車中移除商品9.6.2 使用ProductEvent向購物車添加商品9.7 理解事件流和事件冒泡9.8 學習收獲第10課 用ActionScript 3.0創(chuàng)建自定義組件10.1 用ActionScript構建組件10.2 創(chuàng)建類的基本結構10.3 重寫createChildren()方法10.3.1 在ActionScript中創(chuàng)建Button10.3.2 使用addChild()方法向組件添加Button10.3.3 理解邊飾和rawChildren10.3.4 使用rawChildren上的addChild()向邊飾部分添加元素10.4 在Flex中定位和調整組件大小10.5 理解measure()方法10.6 重寫updateDisplayList()方法10.7 學習收獲第11課 使用DataGrid與項目呈現(xiàn)器11.1 介紹DataGrid和項目呈現(xiàn)器11.2 向ChartPod添加通用的DataGrid11.3 向Dashboard中添加HTTPService調用11.4 用DataGrid顯示購物車11.4.1 為DataGridColumn添加內(nèi)聯(lián)的編輯控件11.4.2 創(chuàng)建MXML的項目呈現(xiàn)器以顯示商品11.4.3 創(chuàng)建內(nèi)聯(lián)的MXML項目呈現(xiàn)器用于顯示Remove按鈕11.4.4 使用set和get函數(shù)更新ShoppingCartItem11.5 使用AdvancedDataGrid11.5.1 為AdvancedDataGrid排序11.5.2 以專家模式進行排序11.5.3 設置AdvancedDataGrid的樣式11.5.4 對數(shù)據(jù)進行分組11.5.5 顯示摘要數(shù)據(jù)11.6 學習收獲第12課 使用拖放12.1 介紹拖放操作管理器12.2 在兩個DataGrid之間拖放12.3 在DataGrid和List之間拖放12.4 用不可以直接拖曳組件上實現(xiàn)拖放操作12.5 將商品拖進購物車12.6 學習收獲第13課 實現(xiàn)導航13.1 導航13.2 在DataEntry程序中使用TabNavigator13.3 在電子商務應用程序中添加主頁和結賬頁面13.4 創(chuàng)建由ViewStack顯示的結賬過程的第一步13.5 使用ViewStack完成結賬過程13.6 學習收獲第14課 使用格式器和驗證器14.1 介紹格式器和驗證器14.2 用格式器類顯示電子商務應用程序的貨幣信息14.3 使用驗證器類14.4 用正則表達式來驗證數(shù)據(jù)(第一部分)14.5 用正則表達式來驗證數(shù)據(jù)(第二部分)14.6 構建自定義驗證器類14.7 學習收獲第15課 實現(xiàn)歷史管理和深度鏈接15.1 歷史管理簡介15.2 實現(xiàn)Navigator容器的歷史管理15.3 構建自定義的歷史管理器15.4 介紹深度鏈接15.4.1 實現(xiàn)Flex 3的深度鏈接15.4.2 為程序添加深度鏈接15.5 學習收獲第16課 自定義Flex應用程序的外觀16.1 用樣式和皮膚來設計16.2 使用樣式16.2.1 用標簽的屬性設置樣式16.2.2 理解樣式繼承16.2.3 用mx:Style標簽設置樣式16.2.4 用Flex Builder工具來編寫CSS16.2.5 用CSS文件來設置樣式16.3 在運行時修改CSS16.3.1 運行時修改CSS的優(yōu)點16.3.2 從CSS文件創(chuàng)建SWF16.3.3 用StyleManager加載CSS的SWF16.3.4 使用加載的CSS覆蓋樣式16.4 皮膚組件16.4.1 圖形皮膚16.4.2 導入CS3創(chuàng)建的皮膚16.4.3 可編程的皮膚16.5 學習收獲第17課 使用Web服務17.1 服務器通信介紹17.2 使用遠程服務器調用的事件模型17.3 配置應用程序在本地運行17.4 在Dashboard中使用Web服務17.4.1 處理Web服務的結果17.4.2 調用Web服務方法17.5 在DataEntry程序里使用Web服務17.6 使用Web Service Introspection向導17.7 在應用程序中使用生成代碼17.8 用Flex Builder重構17.9 完成生成代碼的集成17.10 更新和刪除商品17.11 學習收獲第18課 訪問服務器端對象18.1 向服務器上傳文件18.2 用RemoteObject來保存訂單18.2.1 更新Flex編譯器命令18.2.2 在結賬過程分發(fā)訂單確認事件18.2.3 創(chuàng)建和調用遠程對象18.2.4 把ShoppingCart傳入Checkout組件18.2.5 改變程序狀態(tài)以將其返回Welcome頁面18.3 把ActionScript對象映射到服務器對象18.4 Flex Builder數(shù)據(jù)向導18.5 學習收獲第19課 可視化數(shù)據(jù)19.1 探索Flex圖表組件19.1.1 圖表類型19.1.2 圖表軟件包19.1.3 圖表的組成部分19.2 布置最初的圖表19.3 填充圖表19.3.1 指定圖表的系列19.3.2 向折線圖和柱狀圖添加橫軸和縱軸19.4 向圖表添加圖例19.5 限制軸上顯示的標識數(shù)量19.6 與圖表交互19.6.1 鼠標經(jīng)過事件19.6.2 單擊事件19.6.3 選中事件19.7 添加圖表事件19.8 向圖表添加動畫19.9 用樣式自定義圖表外觀19.10 學習收獲第20課 創(chuàng)建模塊化的程序20.1 介紹Flex 3的模塊化程序20.2 使用Flex模塊20.2.1 使用Module類20.2.2 用ModuleLoader標簽來代替Checkout代碼20.3 理解RSL20.4 使用Flex框架RSL緩存20.4.1 理解框架緩存的目的20.4.2 使用有簽名的RSL與沒有簽名的RSL20.4.3 檢查程序的當前大小20.4.4 配置程序使用框架RSL20.4.5 檢查框架RSL帶來的差別20.5 創(chuàng)建庫項目20.5.1 把類和資源加入庫20.5.2 在FlexGrocer程序中使用FlexGrocerLibrary20.6 學習收獲第21課 部署Flex應用程序21.1 編譯應用程序的部署版本21.2 用AIR擺脫瀏覽器21.2.1 開始AIR21.2.2 安裝AIR21.2.3 安裝第一個程序21.3 創(chuàng)建AIR應用程序21.3.1 創(chuàng)建新的AIR項目21.3.2 使Dashboard程序成為AIR應用程序21.3.3 用Application.xml文件定制程序21.3.4 導出AIR文件21.4 學習收獲第22課 創(chuàng)建過渡和行為22.1 介紹行為和過渡22.1.1 在組件上使用行為22.1.2 在視圖狀態(tài)上使用過渡22.2 在組件上實現(xiàn)效果22.3 為視圖狀態(tài)添加效果22.4 學習收獲第23課 Flex的打印功能23.1 介紹Flex的打印功能23.2 第一次使用Flex的打印功能23.3 在不可見容器中使用PrintDataGrid23.4 在單獨的組件中構建打印視圖23.5 調整打印輸出的縮放比例23.6 從結賬過程打印收據(jù)23.7 學習收獲第24課 使用共享對象24.1 介紹共享對象24.1.1 創(chuàng)建共享對象24.1.2 讀取共享對象24.2 構建SharedObject來保存購物車數(shù)據(jù)24.3 從已有的共享對象中讀取數(shù)據(jù)24.4 學習收獲第25課 調試Flex應用程序25.1 調試技術簡介25.2 觀察客戶端與服務器端的數(shù)據(jù)交換25.3 學習更多調試器相關知識25.3.1 學習設置斷點的更多相關細節(jié)25.3.2 在調試器中檢查變量及其相關值25.4 使用try-catch處理錯誤25.4.1 使用try-catch語法25.4.2 理解錯誤類型25.4.3 使用多個catch塊25.4.4 使用一個catch塊的示例25.4.5 在第一個catch塊中使用基類Error的不良做法示例25.4.6 使用finally語句25.4.7 使用throw語句25.4.8 創(chuàng)建自己的錯誤類25.5 學習收獲第26課 對Flex應用程序進行剖析26.1 Flash Player的內(nèi)存使用26.1.1 Flash Player的內(nèi)存分配26.1.2 按引用傳遞和按值傳遞26.1.3 Flash Player的垃圾收集26.1.4 垃圾收集26.2 對Flex應用程序進行內(nèi)存剖析26.2.1 審查ProfilerTest應用程序26.2.2 剖析ProfilerTest應用程序26.2.3 修復ImageDisplay類26.3 對Flex應用程序進行性能剖析26.3.1 剖析ProfilerTest應用程序26.3.2 修復ProfilerTest類26.4 學習收獲附錄A 安裝指南
章節(jié)摘錄
第1課 理解RIA 1.1 理解計算機程序的演化過程 最早的商業(yè)應用程序的所有數(shù)據(jù)處理都發(fā)生在大型主機上,而客戶端的任務僅僅包括顯示來自服務器的信息以及接受用戶輸入,這主要是因為數(shù)據(jù)處理的成本很高。要在整個企業(yè)中遍布強大的客戶端是無法承受的,因此只能將所有的數(shù)據(jù)處理集中起來,并由“啞終端”負責用戶交互?! ‰S著內(nèi)存和處理的成本越來越便宜,啞終端被微機(也叫C)所取代。微機的處理能力更強,可以單獨運行更多的桌面應用程序,比如文字處理程序和電子表格程序,因此,服務器不再是必需的了。應用微機的組織所面臨的一個挑戰(zhàn)在于不容易集中數(shù)據(jù)。雖然大型主機時代集中了一切,但是到了微機時代卻要把數(shù)據(jù)分布開,結果在集中業(yè)務規(guī)則和同步企業(yè)內(nèi)部數(shù)據(jù)時碰上了許多難題?! 榱私鉀Q這些問題,多家廠商發(fā)布了力求結合微機與大型主機二者優(yōu)勢的平臺,從而導致C/S(Client/Server,客戶機朋艮務器)架構的誕生。這些平臺把微機的功能和易用性提供給終端用戶,同時允許從一個集中地點存儲和訪問商業(yè)邏輯和數(shù)據(jù),為用戶解決了當時的那些問題。但C/S體系引發(fā)了一個新問題——軟件分發(fā)。如果客戶端應用程序發(fā)生變化,IT部門就不得不手動對每一臺單機上的軟件進行重裝或升級。許多公司發(fā)現(xiàn),他們需要用一個全職的IT人員來負責保持終端用戶桌面電腦上的軟件是當前最新的?! ‰S著20世紀90年代因特網(wǎng)的爆炸式發(fā)展,出現(xiàn)了一種商業(yè)應用程序的新模式。這種模式依賴一個作為瘦客戶端的Web瀏覽器,其主要職責是呈現(xiàn)HTML(Hypertext Markup Language,超文本標記語言)并把請求發(fā)回到應用服務器,而應用服務器動態(tài)地生成頁面并傳給客戶端。這往往被稱為“基于頁面的架構”①,該模式成功地解決了C/S時期面臨的軟件分發(fā)問題。每次終端用戶需要應用程序時都會從服務器下載,所以只需升級單個中心服務器,就能自動分發(fā)給整個用戶基。這一模式已經(jīng)成功并將繼續(xù)用于許多應用程序,但同時也帶來了一些顯著的缺點和局限性。實際上,因特網(wǎng)應用程序與大型機應用程序有很多相似之處,比如,所有處理都集中在服務器,而客戶端只是呈現(xiàn)數(shù)據(jù)和捕獲用戶反饋。該模式最大的問題與UI(UserInterface,用戶界面)有關。過去10年內(nèi)終端用戶逐漸接受的很多便捷元素都丟失了,而ul也受到HTML能力的限制。比如,桌面軟件以及C/S應用程序會常常使用拖放功能。然而,HTML應用程序幾乎從不使用該功能,這是因為該功能太復雜,而且缺乏支持跨瀏覽器flODHTML(Dynamic HTML,動態(tài)HTML)元素,而DHTML元素卻是在純HTML/DHTML方案中實現(xiàn)拖放功能所必需的?! ≡诖蠖鄶?shù)情況下,能建成并交付使用的解決方案的總復雜度是大大降低了。雖然Web使部署應用程序更便捷,但基于Web的商業(yè)應用程序的功能卻大幅度地后退了,這是因為基于瀏覽器的應用程序必須適應HTML以及HTTP(Hypertext Transport Protocol,超文本傳輸協(xié)議)等Web架構的局限性。 今天,對基于因特網(wǎng)應用程序的需求持續(xù)增長,與20世紀90年代中期的需求又有很大不同。終端用戶和企業(yè)進行因特網(wǎng)技術投資時會提出越來越高的要求。為了給用戶提供真正的價值,許多公司正在為因特網(wǎng)應用程序尋找更“豐富”的模式,既擁有傳統(tǒng)桌面程序的豐富媒體,又擁有Web應用程序天生的豐富內(nèi)容。 隨著因特網(wǎng)應用程序開始被用于核心業(yè)務功能,應用程序的可維護性變得更加關鍵。一個應用程序的可維護性直接關系到應用程序的架構。可惜,許多Web應用程序在構建時幾乎沒有考慮過應用程序架構的原則,因此很難維護和擴展。今天,可以使用許多方式來將業(yè)務、數(shù)據(jù)訪問和顯示三者分隔開,因而能更容易地為應用程序建立一個穩(wěn)固的架構。隨著web服務等元素的引入,SOA(Service—OrientedArchitecture,面向服務的架構)的概念對基于Web的應用程序來說已經(jīng)逐漸彎得可行?! 榱藵M足企業(yè)的需求,RIA必須能做到以下幾點?! IA必須能為代碼執(zhí)行、內(nèi)容顯示和網(wǎng)絡通信提供一個高效率、高效能的運行時環(huán)境。在1.2節(jié),將會研究基于HTML的標準應用程序的各種限制;學習與基于頁面的傳統(tǒng)架構的大量性能相關的問題?! IA必須能提供強大而又可擴展的對象模型以方便交互。Web瀏覽器近年來的進步,已經(jīng)有能力支持通過JavaScript和lDHTML在DOM(Document Object Model,文檔對象模型)中進行交互,但它們?nèi)匀蝗狈缙脚_和跨瀏覽器的標準化支持。若使用上述工具建立可以運行在各種瀏覽器和操作系統(tǒng)中的RIA,就要創(chuàng)建同一應用程序的多個版本。RIA必須能使用服務器端對象,不論是通過web服務還是別的類似技術。RIA要保證能夠使顯示邏輯和用戶界面與封裝在服務器端中的應用邏輯徹底地分離?! IA必須允許離線使用因特網(wǎng)應用程序。一方面,筆記本電腦和其他便攜設備的人氣持續(xù)增長,另一方面,因特網(wǎng)應用程序最嚴重的局限性之一,就是要求運行應用程序的機器必須連接到因特網(wǎng)。雖然用戶絕大多數(shù)時間都可以上網(wǎng),但對商務旅行者來說,有些時候是不可能連接到因特網(wǎng)的。一個成功的RIA應該允許用戶不論在線或者離線都能使用它?! ?.2 超越基于頁面的架構 對于經(jīng)驗豐富的Web開發(fā)者來說,構建RIA最大的挑戰(zhàn)之一是脫離基于頁面的架構。傳統(tǒng)的Web應用都圍繞著網(wǎng)頁這個概念。不論使用哪種服務器端技術(如果用到的話),流程總是類似下面這樣。 ?。?)用戶打開瀏覽器,向web服務器請求一個頁面。 ?。?)wed服務器收到請求?! 。?)(可選)網(wǎng)絡服務器把請求交給應用服務器來動態(tài)組裝頁面。 ?。?)(可選)網(wǎng)絡服務器從文件系統(tǒng)獲取靜態(tài)頁面?! 。?)web服務器將(動態(tài)或靜態(tài))頁面發(fā)回給瀏覽器?! 。?)瀏覽器繪制頁面以替代先前顯示的頁面?! 〖词乖谛马撁娴拇蟛糠謨?nèi)容與先前頁面基本相同的情況下,整個新頁面依然需要被發(fā)送到瀏覽器并呈現(xiàn)。這是傳統(tǒng)Web應用程序低效的原因之一:每次用戶交互都需要在瀏覽器中加載一個新頁面。RIA的關鍵目標之一就是要減少每次請求傳送的額外數(shù)據(jù)量。相比下載整個頁面,為什么不可以只下載改變了的數(shù)據(jù),然后再更新用戶正在瀏覽的頁面呢?這正是標準桌面程序或者C/S應用程序工作的方式?! ‰m然這個目標似乎不難,也很容易被首次進行RIA開發(fā)的開發(fā)者所接受,但Web開發(fā)者往往會把基于頁面的思維方式帶到RIA中,執(zhí)著于想解決RIA中已經(jīng)不需要解決的舊問題,例如如何“維持狀態(tài)”。舉例來說,用戶登錄以后,怎么知道他們是誰,允許他們用應用程序做些什么? 維持狀態(tài)是基于Web的應用程序引入的一個挑戰(zhàn)。HTTP被設計為一種無狀態(tài)協(xié)議,每次對服務器的請求都是一次原子操作,對先前的請求一無所知。這種無狀態(tài)的本質讓Web更具效率和冗余性,因為在瀏覽器和服務器之間并不需要保持連接。每一個新頁面的請求持續(xù)的時間僅僅是服務器用來檢索和發(fā)送該頁面的時間,這樣能讓單臺服務器處理更多同時發(fā)來的請求。 Web無狀態(tài)的本質也給應用程序開發(fā)者帶來了一些挑戰(zhàn)。通常,應用程序需要記住用戶相關的資料,如登錄權限、添加到購物車的物品,等等。如果沒有能力記住一次次請求之中的這些數(shù)據(jù),就不可能進行真正的應用開發(fā)。為了幫助解決這個問題,實施了一系列的解決方案,其基本原理是在每次請求時將一個獨特的標識發(fā)回給服務器(通常使用cookie。cookie是一些小文本文件,包含了應用程序指定的每個用戶的特定標識符),并在服務器存儲該用戶信息?! ∮袆e于傳統(tǒng)的Web應用程序,RIA可以繞過許多上述問題。因為應用程序在被用戶使用(而不像基于頁面模式那樣只是加載和卸載)的整個時間內(nèi)一直待在客戶端的內(nèi)存中,所以只要設定一次變量,就能在整個應用程序的生命周期中訪問該變量?! ≡S多情況下,開發(fā)RIA時與開發(fā)Web應用程序時所需的思維方式稍有區(qū)別,處理狀態(tài)的方法不同只是其中之一。事實上,基于Web的RIA相LLWeb應用程序反而與C/S應用程序有更多的相似性?! ?.3 明確RIA的優(yōu)勢 與20世紀90年代中后期的網(wǎng)絡泡沫時不同,企業(yè)不會再簡單地因為因特網(wǎng)技術很酷就投資。要取得成功,一項新技術必須體現(xiàn)出真正的投資回報率和真正的價值增長。RIA可在以下幾個層次上實現(xiàn)以上目標,其中都降低了開發(fā)成本并增加了整個組織的價值。
媒體關注與評論
Adobe技術社區(qū)最有影響力的專家之一,擁有豐富的Web開發(fā)經(jīng)驗,客戶包括摩根士丹利、IBM、道瓊斯等公司。他還是Web Developers&Designe.Jourma雜志的編委?! 狫eff Tapper Adobe技術社區(qū)最著名的專家之一,是Adobe開發(fā)人員中心的重要撰稿人,也是Adobe技術郵件列表中最受歡迎的“大俠”。除本書外,他還與Jeff Tapper合著了《AlR權威指南》一書(人民郵電出版社即將出版)?! 狹ichael Labriola Adobe公司客戶培訓團隊的技術主管,他還參與設計了Adobe開發(fā)領域的官方課程。James Talbot Adobe公司資深工程師,有豐富的Flex開發(fā)和培訓經(jīng)驗,幫助全世界許多用戶使用Adobe技術創(chuàng)建了各種重要應用。他也是Object Oriented Action Scnript 2.0一書的作者?! 狹atthew BoIes
編輯推薦
《Flex 3權威指南》適合各層次Flash和Flex開發(fā)人員閱讀?! dobeFlex作為一種跨操作系統(tǒng)和瀏覽器的開源框架,已經(jīng)成為目前開發(fā)RIA最炙手可熱的技術!《Flex 3權威指南》是Adobe公司官方培訓教材,通過一個完整的貼近實戰(zhàn)的網(wǎng)上雜貨店應用,用課程的形式,使讀者身臨其境地在40個小時內(nèi)輕松掌握Flex開發(fā)涉及的各種技術和技巧。學會構建用戶體驗絕佳的專業(yè)級應用程序。書中詳細介紹了FlexBIJilder、AIR、MXML和ActiollScript的概念,用戶與后臺數(shù)據(jù)交互的各種方式以及這些方式之間的區(qū)別,同時還討論了如何使用Flex組件,如何編寫你自己的Flex組件,以及如何編寫高性能的代碼等內(nèi)容。全面涵蓋了Flex3的各種新特性。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載