gpt4 book ai didi

gwt - 从多个 UiBinders 引用单个 ClientBundle 类是否会花费任何费用?

转载 作者:行者123 更新时间:2023-12-05 01:35:07 26 4
gpt4 key购买 nike

我有一个包含整个应用程序所需的 css 资源的 ClientBundle - 默认背景颜色、常见布局模式等。

一个声明 design goal来自 GWT 的是“让多个 ClientBundle 资源函数引用相同的内容不会受到惩罚”。我需要做些什么来避免处罚并帮助 ClientBundle 实现这个目标吗?

一种天真的方法是添加

<ui:with field="appWideResources"
type='com.activegrade.client.resources.appwide.AppWideResources' />

在每个 UiBinder 文件的顶部。但是,在我的 22 亿个 UiBinder 文件中,这是否会创建 22 亿个 AppWideResources 实例,每个实例都有不同的冗余混淆等?

最佳答案

你可以这样做,也可以通过 @UiFactory方法,也不会花费你任何额外的费用。 GWT 只会实例化一个资源集一次,并与引用该集的每个文件共享该单个实例化。

“...每次你调用 GWT.create()(一个 ui:with 会这样做)它会实例化一个新对象,但是在 ClientBundle 中的所有资源都被初始化为静态字段,所以每个实例只是一个非常轻量级的“代理”到那些静态字段;并且 GWT 编译器最终会对其进行优化,(几乎)就像您有一个单例实例一样。” (托马斯·布罗耶)

关于gwt - 从多个 UiBinders 引用单个 ClientBundle 类是否会花费任何费用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330660/

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