2012-06-08 140 views
0

我目前正在开发一个需要报告 打印的GWT应用程序。用户可以从屏幕上选择报告参数,点击打印时我们想显示文件 生成。目前我们有服务器端代码生成HTML 并将其写入文件。当用户点击打印时,RPC正在被 作为将报告参数传递给服务器并开始 报告。在报告开始获取报告的URL后,第二个RPC会被创建。从这里开始,我们创建一个Frame并将 URL设置为由第二个RPC检索的URL。GWT HTML报告打印

我遇到的问题是,当setUrl获取 调用时,它只显示调用时文件 中包含的HTML数量。什么是最好的方式刷新仅包含HTML报告的框架 ?看起来后续的 调用setUrl传递在同一个Url每次都会做的伎俩, 但它似乎并没有包含 自上次调用后将被写入的额外内容。它还会重置 垂直滚动条的位置,每次回到酒吧的顶部 这是我想阻止的其他事情。

有没有更好的方式去做这件事?

回答

0

我认为最好是从GWT请求块,并在它们到达时渲染它们。这样做与Ajax而不是批量刷新将使滚动条更好的行为,消除闪烁,解决缓存问题,还可以让你添加一些反馈,如进度条,预计剩余时间等。

有很多需要更多的基础设施,但您的建议解决方案似乎不适合完成此任务。

+0

感谢您的回复。我确实尝试了这种方法,但它可能会成为一个问题,即它将重置整个HTML,每个时间都为 。即使我只用每个RPC获得下一个“块”,setInnerHtml也必须接受所有以前检索到的块。 – Tommo

+0

是的,你将不得不积累在客户端的块。难道不会像'htmlSoFar + = newChunk; setInnerHtml(htmlSoFar);'?如果每次刷新页面,您一定会每次重置整个HTML! –