他的,
也许你们中的一些人可以分享他们在 GWT 上的移动开发经验吗?
我们正在开发一个非常互动的网站,其中包含许多可点击的面板/按钮,并且遇到了巨大的浏览器迟缓问题。这是一个虚拟的禁止,导航到下一页有时需要一分钟以上。
这可能是架构的弱点:每个元素都是一个可能包含子视图的视图。每个视图都由来自服务器的 DTO 支持。也许这么深的对象图太多了,但我们正试图专注于优化视图渲染的效率,因为将所有内容拆分为组件的想法对我们来说非常重要:) 以下是我关心的一些问题,但可能有更多的。
正如 Google I/O Conference 2010 的视频所暗示的那样,我尝试使用 UiBinder 构建小部件。但这并没有带来太多的速度提升。我们使用了很多面板——HTMLTable、HTMLPanel、VerticalPanel——因为承载其他视图的每个视图都应该以某种方式附加它们。可以用新的 CellList 替换它们有什么好处,还是一个简单的 HorizontalPanel 已经足够轻量级了?
页面上丢失了可点击的小部件。虽然一般建议是减少小部件,但我们确实需要它们来处理 onMouseDown 事件。什么是 CPU 密集度最低的可点击组件 - 带有 MouseDown 处理程序、按钮等的 VerticalPanel?
一旦用户点击一个按钮,就会发出一个 PRC 请求。我注意到,如果 PRC 调用停止一段时间,则单击按钮的样式呈现比单击按钮后立即进行 RPC 调用快得多。是否有一种模式可以指示如何触发不会干扰样式渲染的 RPC 调用。
分析报告(Firebug 和 Speedtracer)表明 setInnerHTML() 和 add() 调用占了大部分负载。add() 应该在视图附加到它们的父级时调用,我不知道为什么 setInnerHTML 需要这么长时间(根据视频演示,它们应该非常快)。是否有一种合理的方法来优化 add() 调用?我真的想不出办法来做到这一点。
我感谢每一个建议。谢谢。