自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flex與JavaEE應(yīng)用程序結(jié)合

開發(fā) 后端
Flex組件有很多值得學(xué)習(xí)的地方,你對(duì)Flex組件實(shí)現(xiàn)逐步增強(qiáng)一個(gè)Web應(yīng)用是否熟悉,這里和大家簡(jiǎn)單分享一下,希望本文的介紹能讓你有所收獲。

本文向大家展示了Flex組件如何實(shí)現(xiàn)逐步增強(qiáng)一個(gè)Web應(yīng)用:開源SWFObjec庫使得嵌入FlashPlayer變的簡(jiǎn)化——一個(gè)Flex應(yīng)用的實(shí)施環(huán)境——到HTML內(nèi)。FlashPlayer,依次允許委派與用戶界面相關(guān)的邏輯到Flex組件內(nèi)。Flex指定的用戶界面語言不僅僅使得用戶界面代碼更簡(jiǎn)單,而且使得你的應(yīng)用程序從FlashPlayer的實(shí)時(shí)編譯、用戶界面結(jié)果、多種手段支持等等中獲益匪淺。另外,因?yàn)镕lex支持以CSS為基礎(chǔ)的樣式,你的Flex組件將會(huì)與外界環(huán)境HTML頁面相處得十分和諧。

Flex與JavaEE應(yīng)用程序結(jié)合

  一個(gè)關(guān)鍵方面在于逐步增強(qiáng)的Flex能夠通過數(shù)據(jù)傳輸?shù)竭_(dá)Flex組件中。在前面我們?cè)?jīng)提到,服務(wù)器產(chǎn)生的JSON陣列反映了應(yīng)用程序的數(shù)據(jù),然后它作為FlashVar傳遞到Flex組件內(nèi)。

  盡管FlashVar允許Flex成為現(xiàn)有的企業(yè)級(jí)應(yīng)用的一部分,并且對(duì)應(yīng)用程序的改變很小,F(xiàn)lashVar仍然有一個(gè)非常大的限制:因?yàn)镕lashVar是由名稱/值組成的字符串,在瀏覽器上面對(duì)于字符串對(duì)象的***長(zhǎng)度有限制。對(duì)于大多數(shù)瀏覽器而言,這個(gè)限制是65KB。

  兩個(gè)階段載入

  你可以去掉這個(gè)限制,這需要你為Flex組件執(zhí)行它自己的數(shù)據(jù)載入作準(zhǔn)備。這就需要兩個(gè)階段載入的網(wǎng)頁:

  對(duì)瀏覽器的要求做出響應(yīng),***個(gè)階段載入HTML頁面和嵌入的SWF(Flex)對(duì)象;

  一旦Flex應(yīng)用完全展現(xiàn)在瀏覽器上,F(xiàn)lex獲取應(yīng)用程序的數(shù)據(jù)用來填充到Flex組件中。

  第二階段載入很多豐富客戶端應(yīng)用程序的一般協(xié)議,通過減少響應(yīng)時(shí)間可以改善用戶體驗(yàn):只要用戶定留在同一個(gè)HTML頁面上,階段一的執(zhí)行就只進(jìn)行一次。所有之后的數(shù)據(jù)存取的發(fā)生都是通過第二階段實(shí)現(xiàn)的,緩解了每一次瀏覽器檢索以及重新展示用戶界面的時(shí)候?qū)τ诜?wù)器的要求。性能優(yōu)勢(shì)得益于這種模式充分利用了每個(gè)應(yīng)用一個(gè)頁面的模式,比如說谷歌的Gmail和地圖應(yīng)用程序。

  這篇文章的其余部分將會(huì)說明Flex對(duì)于來自遠(yuǎn)程網(wǎng)絡(luò)資源的數(shù)據(jù)載入***化的三種方法:通過HTTP載入JSON數(shù)據(jù),通過HTTP載入XML,以及通過高性能的串行協(xié)議直接引用服務(wù)器Java對(duì)象。對(duì)于RESTful數(shù)據(jù)存取而言,前兩種方法是一個(gè)好的選擇,盡管遠(yuǎn)程對(duì)象引用適合RPC通信樣式。***方法的一個(gè)優(yōu)勢(shì)是客戶端以及服務(wù)器可以通過類型對(duì)象通信。Flex:EngineYard的全新云服務(wù)

  JSON超越HTTP

  Flex的HTTPService類使得委托JSON數(shù)據(jù)載入到Flex客戶端的過程變得簡(jiǎn)單。下面的ActionScript代碼獲得了指定的URL的內(nèi)容,作為Flex客戶端完成事件處理程序的一部分。

  1. ...  
  2.   privatefunctiononCreationComplete():void{  
  3.  
  4.   varhttp:HTTPService=newHTTPService();  
  5.  
  6.   http.url="booksInventory.json";  
  7.  
  8.   http.addEventListener(ResultEvent.RESULT,onResult);  
  9.  
  10.   http.addEventListener(FaultEvent.FAULT,onFault);  
  11.  
  12.   http.send();  
  13.  
  14.   }  
  15.  
  16.   privatefunctiononResult(event:ResultEvent):void{  
  17.  
  18.   booksInventory.dataProvider=JSON.decode(event.resultasString)asArray;  
  19.  
  20.   }  
  21.  
  22.   privatefunctiononFault(event:FaultEvent):void{  
  23.  
  24.   Alert.show("Can'tloaddata:"+event.message);  
  25.  
  26.   }  
  27.  
  28.   ...  
  29.  

 列表一:使用HTTPService獲取JSON數(shù)據(jù)

  HTTPService,F(xiàn)lexSDK的一部分,為AjaxXMLHttpRequest對(duì)象提供相似的功能:給予一個(gè)URL,它使得你能夠從HTTP數(shù)據(jù)源異步的獲取數(shù)據(jù)。send()會(huì)立即調(diào)用返回。當(dāng)結(jié)果返回的時(shí)候,或者采用另一個(gè)選擇,就是將錯(cuò)誤刪除的時(shí)候,回調(diào)機(jī)制采用這項(xiàng)功能

  這個(gè)實(shí)例的結(jié)果以及失敗處理程序功能都是由名稱引用的:編譯程序?qū)?huì)找到與方法相匹配的名稱以及必須的參數(shù)和返回類型,然后分配這些功能,作為操作者來處理這些結(jié)果或者失敗的HTTP請(qǐng)求。

  實(shí)例的結(jié)果和失敗處理功能每一個(gè)都是由一個(gè)單一行組成的,你可以使用ActionScript功能讓這些代碼變的簡(jiǎn)練一些:  

  1. privatefunctiononCreationComplete():void{  
  2.   varhttp:HTTPService=newHTTPService();  
  3.  
  4.   http.url="booksInventory";  
  5.  
  6.   http.addEventListener(ResultEvent.RESULT,  
  7.  
  8.   function(event:ResultEvent):void{  
  9.  
  10.   booksInventory.dataProvider=  
  11.  
  12.   JSON.decode(event.resultasString)asArray;  
  13.  
  14.   });  
  15.  
  16.   http.addEventListener(FaultEvent.FAULT,  
  17.  
  18.   function(event:FaultEvent):void{  
  19.  
  20.   Alert.show("Can'tloaddata:"+event.message);  
  21.  
  22.   });  
  23.  
  24.   http.send();  
  25.  
  26.   }  
  27.  

 列表二:功能的成功和失敗處理

  ResultEvent的結(jié)果特性是非類型對(duì)象,并且我們必須在其轉(zhuǎn)變?yōu)镴SON陣列之前將它轉(zhuǎn)變?yōu)樽址?。因?yàn)檫@種轉(zhuǎn)變確認(rèn)了數(shù)據(jù)或者轉(zhuǎn)變?yōu)橹付ǖ臄?shù)據(jù)類型,或者返回空值。在這個(gè)例子當(dāng)中,錯(cuò)誤的處理程序僅僅是顯示了一些不友好的模塊,標(biāo)示出了通信錯(cuò)誤的原因。

  伴隨著這種改變,我們現(xiàn)在可以從Flex組件的外界環(huán)境HTML頁面中去掉FlashVar。因?yàn)镕lex組件執(zhí)行它自己的數(shù)據(jù)載入,客戶端可以載入的數(shù)據(jù)總量是僅由可用的記憶存量限制的。

【編輯推薦】

  1. 解析重寫Flex組件中角色 規(guī)則和步驟
  2. 開源Flex組件FlexReport使用指南
  3. 學(xué)習(xí)總結(jié) 在Flex中如何嵌入Flex字體
  4. 揭開Flex正則表達(dá)式的神秘面紗
  5. 用ActionScript創(chuàng)建可視化的Flex組件

 

 

責(zé)任編輯:佚名 來源: hi.baidu.com
相關(guān)推薦

2010-08-12 16:20:57

Flex應(yīng)用程序

2009-06-19 17:24:36

ibmdwMashupLotus

2010-08-04 14:15:43

Flex應(yīng)用程序

2010-08-04 09:43:28

Flex應(yīng)用程序

2010-02-06 14:19:26

ibmdwGoogleMap

2010-08-10 15:26:38

Flex應(yīng)用程序

2010-08-02 09:10:36

Flex模塊化

2010-08-12 15:52:34

Flex應(yīng)用程序

2010-08-13 13:18:20

Flex應(yīng)用程序

2009-11-23 19:52:55

ibmdwFlex

2011-12-03 20:25:53

2010-08-12 15:44:25

Flex應(yīng)用程序

2010-08-13 13:05:30

Flex應(yīng)用程序

2010-08-04 09:34:51

Flex設(shè)計(jì)

2023-12-12 13:42:00

微服務(wù)生態(tài)系統(tǒng)Spring

2010-08-12 15:59:23

Flex應(yīng)用程序

2009-07-14 11:08:42

WebRendererSwing應(yīng)用程序

2009-11-25 10:22:28

Linux應(yīng)用程序安裝

2010-08-12 15:10:17

Flex4

2010-08-12 16:28:51

Flex應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)