이전에 작성했던 [GWT] OpenerEvents 에서는 GWT 에서 open 한 GWT 페이지에서 상위 페이지로 이벤트를 fire 하는 내용을 포스팅 하였습니다. 이번에 제가 맡은 업무는 GWT 로 만들어진 opener 에서 extjs 로 만들어진 popup 을 띄운 후, popup 에서 opener 로 이벤트를 발생시키는 일이였습니다.
소개 현재는 호스트 모드를 시작하는데 많은 시간이 걸립니다. 이 시작 시간의 상당부분은 컴파일 시간이 차지합니다. Instant Hosted Mode 는 기존의 클래스 파일을 어디에서든지 사용하는 것이 가능하도록 하는 것을 제안합니다.
고려할 사항
- JSNI 는 클래스파일에 보존할 필요가 없습니다. 그래서 여전히 소스에서 읽어와야만 합니다. 그러나 우리는 JSNI 를 파일에 저장하고, 소스파일이 변경되지 않았다면 재사용할 수 있습니다.
- super-source(?) 에 맞추는 방법은 확실하지 않습니다. (????)
- Emma 와 같은 외부 바이트코드 재작성 도구가 필요하다는 것을 고려해야 합니다.
- ...
역시 짧아도 번역의 압박이~ ㅋㅋㅋ
중요한 내용은 JSNI 를 바이트 코드에 심어서 재사용할 수 있도록 하는 것입니다.
그렇다면... 나중에는 class 파일로도 GWT 를 컴파일 할 수 있도록 변경도 가능할 것 같습니다.
아니면 새로운 타입의 바이트코드를 생성하여 재사용할 수 있도록 만든다는 것이겠죠...
진행할 과정들을 나눈 후에 ProgressTimer 를 구현하여 progressRun 메소드에서 실행하도록 한후 ProgressManager 에 추가하는 방식으로 추가된 순서대로 실행을 하도록 하는 방식입니다. 약간의 딜레이가 있을 경우에는 프로세스가 화면 렌더링을 하기전에 즉, 화면이 멈춰보이는 상태 전에 MessageBox 의 progress 를 업데이트합니다.
추가적으로 생성할 때 내부에서 사용할 객체를 넘겨주기 때문에 필요한 객체를 효과적으로 사용할 수 있습니다.
GWTEventService 는 이벤트 기반의 클라이언트-서버 통신 프레임워크입니다. GWT-RPC 와 Comet 을 이용합니다.
자세한 내용은 아래쪽에...
GWTEventService is an event-based client-server communication framework. It uses GWT-RPC and the Comet / server-push technique. The client side offers a high-level API with opportunities to register listeners to the server like to a GUI component. Events can be added to a context/domain on the server side and the listeners on the client side get informed about the incoming events. The server side is completely independent of the client implementation and is highly configurable. Domains can be defined to decide which events are important for the different contexts.
Advantages
Encapsulation of the client-server communication
High-level API with listeners and events
Only one open connection for event listening
Reduction of server calls
Reduction of connection peaks
Events are returned directly when the event has occurred (instead of polling)
Events are bundled to reduce server calls
Based on the GWT-RPC mechanism
Automatic timeout recognition and handling
Extensible architecture
원래 Comet 과 GWT 를 이용해서 메신저 비슷한 것을 만들어 보려고 했는데 이런 프레임워크가 나오면 개발이 좀 더
쉬워질 것 같습니다~