为什么GWT wrap()方法不必要地迭代整个DOM?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么GWT wrap()方法不必要地迭代整个DOM?相关的知识,希望对你有一定的参考价值。

我正在使用自定义GWT组件,它包裹在我的html页面中的现有文本框中。

该页面返回一个信息列表 - 因此,当加载更大的信息集时 - GWT加载过程需要更长和更长时间。

查看wrap()方法的源代码 - 看起来它遍历DOM迭代寻找匹配的id。

这不是不必要的吗?有没有办法让它只是迭代到我的组件,然后停止?

答案

GWT做了一堆DOM守门员,你根本不会轻易绕过它或根本没有。

听起来有一个点,你有这么多的文字输入,你需要重新思考你是如何接近这个。在GWT中的表单面板中动态创建输入字段非常简单快捷,您可以非常简单快速地下载json结构,其中包含原始html页面加载中输入字段所需的数据,将其转换为字典或简单GWT中的数组,用它来填充表单。

完成后,您可以清除指向数据的指针,以便在您不再需要它时进行GC。

要在javascript中访问数据,请查看创建本机方法,它非常容易实现。如果有意义,您可以将json数据格式化为字典,GWT的字典类将直接映射到它。

我一直使用这些技术,它们非常强大,并且几乎与javascript可以填充DOM一样快。

以上是关于为什么GWT wrap()方法不必要地迭代整个DOM?的主要内容,如果未能解决你的问题,请参考以下文章

不必要地实现 Serializable 的惩罚是啥?

为啥我的 hdf5 文件看起来如此不必要地大?

为啥 vue3 不必要地重新渲染 v-for 中的节点?

在 iOS8.3 上显示警报视图时,iOS 键盘通知不必要地触发

值不必要地四舍五入

iOS 中的 Bar 部分被不必要地扩展