我正在做一个GWT应用程序和速度跟踪器说绘画过程需要很长时间,所以阅读:Google 2010 - IO会话(“使用GWT进行性能架构”)的pdf,这句话出现:
我应该何时使用小工具?
当组件必须接收事件时和 无法捕获父窗口小部件中的事件
我同意第一个条件(我想使用小部件,因为我的组件,如textBox或图像必须接收事件,如MouseOver,MouseClick ...)但我的问题涉及第二个条件。事实上,我不明白在这种情况下应该有没办法来捕捉父窗口小部件中的事件,因为它(“总是”)可以访问任何元素/组件用Javascript操纵DOM。在这里,我假设使用Javascript我可以访问Widgets(用ui:field标识,例如在ui:binder中)元素和DOM元素(用id =“”标识)。
那么你能告诉我为什么我错了,或者在“没有办法捕捉父小部件中的事件”时给我一个例子吗?
谢谢你,
答案 0 :(得分:1)
更多的是“没有 easy 方式来放置会在父窗口小部件中捕获事件的代码”。所有这些都与组件化有关:您不希望将事件处理代码放在组件之外,并且您不希望将事件处理代码附加到组件外部的元素。所以组件仍然是小部件,但在它们内部尝试尽可能地使用HTML和事件冒泡。
在实践中,这意味着在复合内部使用HTMLPanel
(或RenderablePanel
来获得更好的性能,如果你使用2.5.0 RC1并且你有点冒险,那么使用{{1} }(使用UiRenderer
可以轻松处理从特定子元素冒泡的事件)