gpt4 book ai didi

gwt - 在 GWT 中管理许多小部件

转载 作者:行者123 更新时间:2023-12-04 18:16:07 26 4
gpt4 key购买 nike

假设我们在 GWT 应用程序中具有以下小部件/面板结构 -

  • DockLayoutPanel 左侧的树菜单,用于导航到不同的应用程序。
  • DockLayoutPanel 中心的面板和加载到此面板中的不同内容小部件(这由导航树菜单控制。
  • 这些内容小部件是包含一个或多个小部件的组合。

  • 处理此类应用程序的一种方法是为所有小部件/面板保留单例,这意味着组合将为其所有子小部件保留单例。但我觉得这是对单例的过度使用。另一种选择是每次需要时都构造新的 Widget 对象,但这一定很昂贵。

    这方面的最佳实践是什么?是否有任何标准模式可以解决这个问题?

    最佳答案

    The other alternative is to construct new Widget object every time one is needed, but this must be expensive.



    你会感到惊讶。虽然 Widget 创建不是免费的,但在大多数情况下,它非常便宜,即使在 DevMode 中也是如此。在 DevMode 中创建一些小部件的成本很高(特别是 FlexTable/Grid),但是一旦你编译了应用程序,这些小部件的速度就会大大加快。

    似乎没有任何专门针对此的模式,我也不能指出任何一位大师给出了最佳实践,但是在我们的应用程序中,我们之前将所有顶级小部件都视为单例,这导致了很多问题我们。 (管理不同屏幕之间的状态,处理事件总线事件,未清除时屏幕上的陈旧数据)

    我们只是重构了大部分代码,以便更多地按需创建(随后在不再需要时销毁),我们获得了更简单的代码和更快的启动时间。

    最后,如果您确实按需创建小部件,可能在某些情况下您需要通过将这些小部件设置为单例来提高性能,但我认为您会发现只有少数情况值得付出努力。

    总而言之,不要以为没有尝试过就会很慢,也不要抢先优化你的代码。

    关于gwt - 在 GWT 中管理许多小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11685338/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com