2010-12-11 4 views
3

사용자가 사이트를 방문하면 클라이언트와 서버 측에 빈 장바구니가 만들어집니다. SC에 제품을 추가하면 서버 측에 제품을 추가하기 위해 RPC 호출이 완료됩니다. 동기화가되고 UI를 업데이트하려면 동일한 클라이언트 측을 사용해야합니다. 그렇지 않으면 이전 SC에 대한 참조가있는보기로 전환합니다. UI가 그에 따라 업데이트되지 않습니다 (비어있는 SC가 있지만 제품에는 하나의 제품이 있음).GWT 동기화 클라이언트 및 서버 모델

해결 방법 1

RPC 호출은 업데이트 된 SC를 반환하고 clientSC = returnedSC을한다. 전선을 통해 전송할 많은 양의 데이터가 있기 때문에 그리 효율적이지 않습니다.

해결책 2

RPC 호출 첨가 생성물을 반환하고 클라이언트 측 (서버 측에서 같은) 데이터 저장소에 저장하는 대신에리스트에 제품을 추가하는 방법 addProduct 전화 .

해결책 3

용액 (2)와 동일하지만

SC에 대한 참조가 발표자 (I은 MVP 패턴을 사용)를 통지하는 이벤트를 사용한다.

어느 것이 가장 좋으며, 더 일반적으로 클라이언트와 서버 모델을 동기화 상태로 유지하는 가장 좋은 방법은 무엇입니까?

답변

4

gwt 2.1과 함께 제공되는 RequestFactory를 사용하십시오.

http://code.google.com/webtoolkit/doc/latest/DevGuideRequestFactory.html

RequestFactory 쉽게 이 클라이언트와 서버 모두에서 데이터 액세스 레이어를 구현할 수 있습니다. 서버 측 코드를 데이터 중심 방식으로 구조화하고 GWT-RPC보다 높은 추상화 수준을 제공 할 수 있습니다. 은 데이터 지향적 인 대신 서비스 지향적입니다. 클라이언트 측에서 RequestFactory 수정 된 개체 를 추적 매우 경량 네트워크 페이에 결과 서버에 전용 변화를 보낸다. 또한 RequestFactory는 에서 자동으로 요청을 일괄 처리하고 캐싱하기위한 견고한 기초를 제공합니다.

RequestFactory는 자신의 서블릿, RequestFactoryServlet 및 구현 클라이언트와 서버 사이의 데이터 교환 에 대한 자체 프로토콜을 사용합니다. GWT-RPC와 같이 과 같은 범용 서비스 용으로 설계된 이 아니며 곧 과 같이 데이터 지향형 서비스 용입니다. RequestFactory는 GWT-RPC를 사용하지 않으며 을 대체하지 않습니다. 은 클라이언트와 서버 모두에 에 지속성 계층을 구현하도록 특별히 설계되었습니다.

관련 문제