2012-06-08 3 views
0

현재 보고서 인쇄가 필요한 GWT 응용 프로그램을 작성 중입니다. 사용하면 화면에서 보고서 매개 변수를 선택할 수 있으며 인쇄를 클릭하면 이 표시되고 파일은 인 것처럼 표시하려고합니다. 현재 우리는 HTML을 생성하고 그것을 파일에 쓰는 서버 측 코드를 가지고 있습니다. 사용자가 인쇄를 클릭하면 보고서 매개 변수를 서버에 전달하고 보고서를 시작하기 위해 RPC가 이됩니다. 두 번째 RPC는 보고서가 시작된 후 보고서의 URL 인 을 얻습니다. 여기에서 프레임을 만들고 URL을 두 번째 RPC에서 검색 한 URL로 설정합니다.GWT HTML 보고서 인쇄

내가 실행중인 문제는 setUrl이 호출 될 때 이 호출되면 호출시 파일에 포함 된만큼의 HTML 만 표시한다는 것입니다. HTML 보고서가 포함 된 프레임을 새로 고치는 가장 좋은 방법은 무엇입니까? 연속적으로 을 호출 할 때 setUrl을 호출 할 때마다 동일한 URL에서 이라는 트릭을 수행하지만 실제로는 마지막 호출 이후에 이 기록 된 내용을 포함하지 않는 것으로 보입니다. 또한 수직 스크롤 막대의 위치를 ​​매번 막대의 상단으로 다시 설정하여 을 방지하고 있습니다.

이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

0

GWT에서 청크로 HTML을 요청하고 도착한대로 렌더링하는 것이 더 좋을 것이라고 생각합니다. 도매 새로 고침 대신 ajax를 사용하면 스크롤 막대를 사용하여 더 나은 동작을 수행하고 깜박임을 없애고 캐싱 문제를 해결할 수 있으며 진행률 막대, 예상 남은 시간 등과 같은 피드백을 추가 할 수도 있습니다.

더 많은 인프라가 필요하지만 제안 된 솔루션이 작업에 적합하지 않은 것 같습니다.

+0

응답 해 주셔서 감사합니다. 이 방법을 사용해 보았지만 은 전체 HTML을 다시 설정하는 문제가 될 수 있습니다. 시간. 각 RPC에서 다음 "청크"만 가져 오더라도 setInnerHtml은 검색된 이전 청크를 모두 가져와야합니다. – Tommo

+0

예, 클라이언트에 청크를 축적해야합니다. 'htmlSoFar + = newChunk;와 같이 간단하지 않을까요? setInnerHtml (htmlSoFar);'? 매번 페이지를 새로 고침하면 매번 전체 HTML이 재설정됩니다! –