簡體   English   中英

從Flex前端直接操縱基於Java的后端對象的最佳方法?

[英]Best way to directly manipulate java-based backend objects from flex front-end?

我目前陷入兩個選擇之間:

1)將對象的信息存儲在file.xml中,該對象在初始化時返回給我的應用程序,以在加載GUI時顯示出來,然后每當通過GUI編輯對象時,對我的后端執行異步調用(保存到file.xml中)正在進行中)。

-要么-

2)使整個過程異步,以便最終用戶調出我的自定義對象進行編輯時,它將查詢該對象的后端,返回要在GUI中顯示的xml,然后進行另一個異步調用被改變了。

無論哪種方式,我都認為這兩種方法都有很多弊端。 我真的只需要對象的一個​​表示形式(在后端),並且不希望管理對象的前端版本以及將對象轉換為xml表示形式,然后將其分解為對象上的另一個對象。在數據網格中使用的flex前端。

有沒有更好的方法可以使我僅管理后端java對象並在前端創建該對象的接口,而不必擔心它的異步特性以及同一對象的多種表示形式?

您應該查看Granite數據服務: http : //www.graniteds.org如果您使用的是Hibernate:它應該是您的首選,因為BlazeDS並不那么高級。 Granite在Flex中實現了一個很棒的外觀,可以在AMF中使用自定義序列化來訪問后端Java對象,支持延遲加載,通過bean驗證在flex端進行實體緩存。 在全球范圍內,這是一種自頂向下的方法,可以從Java類生成AS3類。

如果需要實時功能,則可以在Flex客戶端(重力模塊)上推送數據更改,並在前端解決沖突,或在后端實現沖突解決程序。

仍然最終您將不得不處理高級沖突(在服務器上可以使用一些“不推薦使用的” flex對象來處理:您不想處理),例如,一個基本功能是添加版本字段並拒絕操作自動在后端上部署此類對象(多種方法):您將必須為Flex客戶端實現一種自定義方式,以將自身更新為當前更改,這意味着某些工作可能會在Flex客戶端上丟失(數據丟失)。

如果沒有太多的人在Flex應用程序上處理相同的對象,則不會發生很多事情,就像在分布式VCS中一樣。

根據您的實時需求(java對象更改的頻率是多少?這是最重要的問題),您可以選擇在flex端“緩存”更改,然后一次更新整個內容(但您會如果發生更改,則會遇到麻煩的沖突),或者您可以在每次服務器端檢查時(使用花崗岩啟用此操作),沖突更少(並且發生一次:更簡單),但是您可能會生成更多代碼來同步對象和更多網絡流量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM