2011-10-17 2 views
2

이 문제가 발생했습니다. 버튼을 클릭 한 후 서버에 요청하고 데이터를 가져옵니다. 그런 다음 새 페이지 /보기에 데이터를 표시합니다. 이것은 문제를 일으킨다 : 요청이 만들어지고 데이터가 수신되고, 파싱되어 뷰에 설정되는 동안 UI는 기다려야한다. 이로 인해 사용자는 모든 데이터가로드 될 때까지 기다리지 않아도 되돌아 갈 수 있으며 심지어 통화를 취소 할 기회조차 없습니다. 멀티 스레딩이 문제를 해결할 것이고, 그것이 도움이 필요한 곳입니다.GWT : 멀티 스레딩

HTML5 웹 노동자는 저를 위해 속임수를 사용합니다. 그러나 JSNI에서 코드를 "하드 코딩"하고 GWT Java (RequestBuilder) 대신 Javascript로 모든 호출을 작성하고 싶지는 않습니다. DeferredCommand에 대해 읽었지만 문제가 아니라고 생각합니다.

제안 사항? 또는이 순간에 불가능한 최적화입니까?

답변

2

JS에서는 GWT이므로 멀티 스레딩이 없습니다. 대신 콜백과 함께 비동기 호출을 사용해야합니다. 일반적으로 GWT RPC을 통신에 사용하면 요청을 실행하고 onSuccess 이벤트의 결과를 처리합니다. 또는 정기적으로 결과를 확인하려면 항상 Timer을 사용할 수 있습니다. 어떤 종류의 요청을하고 있는지 명확하지 않으므로 구체적이지 않습니다. 아마도 Communicating with the server

편집 :의 해당 섹션을 확인해야합니다. RequestBuilder을 언급 한 것으로 나타났습니다. sendRequest()는 실행을 차단해서는 안되며 제공된 콜백의 RequestCallback.onResponseReceived()의 결과를 처리해야합니다. 그 콜백에서 버튼 이벤트 처리를 계속 하시겠습니까?