【问题标题】:Decomposing GWT Application into Modules, Entry Points & Fragments将 GWT 应用程序分解为模块、入口点和片段
【发布时间】:2012-10-27 12:37:00
【问题描述】:

我对 GWT 模块的理解是它是一个“可重用单元”。

我对@9​​87654322@ 的理解是它是一个用于与客户端浏览器交互的模块。因此,我将EntryPoint 视为一种“可执行 JAR”,而将模块视为库 JAR 或 DLL。

我对片段的理解是它是模块的子组件,用于延迟绑定和代码拆分。

首先,如果我对这些断言中的任何一个有误,请先纠正我或为我澄清事情!

如果我是对的,那么很明显你是根据需要将一个模块分解成片段。您编写模块,以各种方式对其进行测试,查看 soyc 编译器报告,如果发现瓶颈,您会根据需要开始分段和代码拆分,是吗?

但是如何将应用程序分解为模块和入口点?!?同样,我确信这一切都归结为需要,并且是特定于应用程序的。我刚刚阅读了this article on structuring a GWT app,虽然它很有帮助,但它仍然没有提供任何将应用程序分解为模块/入口点的试金石或指南。

我已经计划将我的应用程序拆分为两个模块:WebModuleAppModuleWebModule 将是应用程序的“公共”部分(网站,如果你愿意的话),AppModule 将在用户成功登录后下载(我这样做是为了安全目的)。

但除此之外,我不确定如何将我的AppModule 拆分为其他模块,以及如何确定这些模块是否需要入口点。所以我想问:如果你对一个模块进行分段以规避代码下载的网络延迟问题,你什么时候/为什么要模块化一个应用程序,什么时候模块需要一个入口点?

【问题讨论】:

    标签: java gwt module


    【解决方案1】:

    EntryPoint 不是一个单独的模块。它是一个模块的一部分,具有一个在应用程序启动时将被调用的函数。

    【讨论】:

      【解决方案2】:

      模块的意义在于对逻辑功能进行分组,以便您可以在不同项目之间共享代码。没有其他的。 GWT 已经附带了一堆模块(HTTP、Activity、Places、Debug)。如果您决定将其分组,您的应用程序中可能会有 COMMENT 或 USER 模块。

      只应在需要时使用代码分割。您只能通过GWT.runAsync() 引用超出片段边界的代码,这可能是一个主要的烦恼。我建议您仅在您的应用程序加载缓慢时才执行此步骤。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-08
        • 1970-01-01
        • 2018-01-20
        • 1970-01-01
        • 2018-09-06
        • 2015-08-19
        • 1970-01-01
        • 2012-02-25
        相关资源
        最近更新 更多