av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Flex與JavaEE應用程序結合

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

Flex與JavaEE應用程序結合

  一個關鍵方面在于逐步增強的Flex能夠通過數據傳輸到達Flex組件中。在前面我們曾經提到,服務器產生的JSON陣列反映了應用程序的數據,然后它作為FlashVar傳遞到Flex組件內。

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

  兩個階段載入

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

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

  一旦Flex應用完全展現在瀏覽器上,Flex獲取應用程序的數據用來填充到Flex組件中。

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

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

  JSON超越HTTP

  Flex的HTTPService類使得委托JSON數據載入到Flex客戶端的過程變得簡單。下面的ActionScript代碼獲得了指定的URL的內容,作為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數據

  HTTPService,FlexSDK的一部分,為AjaxXMLHttpRequest對象提供相似的功能:給予一個URL,它使得你能夠從HTTP數據源異步的獲取數據。send()會立即調用返回。當結果返回的時候,或者采用另一個選擇,就是將錯誤刪除的時候,回調機制采用這項功能

  這個實例的結果以及失敗處理程序功能都是由名稱引用的:編譯程序將會找到與方法相匹配的名稱以及必須的參數和返回類型,然后分配這些功能,作為操作者來處理這些結果或者失敗的HTTP請求。

  實例的結果和失敗處理功能每一個都是由一個單一行組成的,你可以使用ActionScript功能讓這些代碼變的簡練一些:  

 
 
 
  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的結果特性是非類型對象,并且我們必須在其轉變?yōu)镴SON陣列之前將它轉變?yōu)樽址?。因為這種轉變確認了數據或者轉變?yōu)橹付ǖ臄祿愋?,或者返回空值。在這個例子當中,錯誤的處理程序僅僅是顯示了一些不友好的模塊,標示出了通信錯誤的原因。

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


分享文章:Flex與JavaEE應用程序結合
轉載源于:http://uogjgqi.cn/article/dpeodcc.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流