GWT 可视化最佳实践
Posted
技术标签:
【中文标题】GWT 可视化最佳实践【英文标题】:GWT Visualization best practice 【发布时间】:2011-04-12 07:24:18 【问题描述】:我是 Google Visualization for GWT 的新手,我需要帮助。谁能告诉我哪个 传输 DataTable(可视化数据)的最佳做法是 GWT RPC。原因 DataTable 不可序列化,我有很多 数据。我想使用 GWT RPC,因为我在服务器端使用 Java。我知道可视化包中有 DataTable.toJson 方法,但它尚未包装到 gwt.visualization 包中。我自己尝试用 JSNI 将它包装到我的 GWT 代码中,但没有成功。有没有人成功,或者有什么不同的方法来解决这个问题。
谢谢
【问题讨论】:
【参考方案1】:我所做的是将数据从服务器发送到客户端并在客户端创建 DataTable 对象。
我认为这是不太脏的方法:)
【讨论】:
【参考方案2】:问题在于,它令人难以置信的缓慢......
我尝试将 ~800 个值添加到 AnnotatedTimeline
并重绘它花了大约 10.5 秒。 chrome网络分析工具说对服务器的请求花了200ms..其余时间在客户端创建数据表时丢失了..
通常的方法是使用查询对象来获取数据。这个对象将为您完成所有数据表的创建.. 但是我仍然没有找到一种方法来发送这样的查询而不将整个 URL 写入单个字符串.. 恕我直言,应该有一些方法来做类似 RPC 调用的事情...但是网络上似乎没有很好的教程...或者我弄错了:)
【讨论】:
Jonas,您提到的 10.5 秒,是在托管模式下还是在应用正确部署后?因为两者之间有很大的不同... 它在托管模式下,但由于它确实发生在 js 部分,我认为它在部署时不太可能加速。 (我将 js 编译为压缩/生产)。【参考方案3】:我认为'Query' object 是获取数据表的最佳方式。创建一个 datasourceservlet 并使用 response.getDataTable() 方法获取数据表。 An example here.
【讨论】:
以上是关于GWT 可视化最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
尽早避免 GWT 的 com.google.gwt.user.client.rpc.SerializationException 的最佳实践