【发布时间】:2012-09-20 22:27:10
【问题描述】:
以下是我最近提出的问题: Understanding Document.createElement()
这里是上下文:
- 在我的 GWT GUI 中有一个文本区域,其中包含一个文本
- 用户可以在此文本区域中选择一个单词(或一系列单词)并将其转换为
highlighted text -
highlighted texts需要能够听用户:点击、右键、拖拽操作 - 文本区域中有 1000 个
highlighted text的场景并非不可能。
我在想:
- 直接在 GWT 中操作 DOM 元素是一种不好的方法吗? (不使用小部件)
- 像Add listener to SpanElement 这样的事情是不是一种糟糕的方法?会导致内存泄漏吗?
- 实现此类目标的最佳方法是什么?我已经使用一个使用 span 元素的简单自定义小部件进行了一些测试,在 DevMode 中将 1000 个小部件添加到 RootPanel 大约需要 6 到 10 秒。当我直接使用 DOM 元素时,此操作持续时间不到 1 秒(经过优化甚至不到 200 毫秒)。
编辑
根据我在@Gilberto 建议后所做的一些实际测试,性能应该不是问题。 http://jmichelgarciagwt.appspot.com/DOMTesting.html
不过,我还是希望收到有关问题 1) 和 2) 的反馈
【问题讨论】:
-
您不应该使用 DevMode 来衡量性能。在进行任何基准测试之前,将您的代码编译为最终的 javascript。