我正在制作一个包含多个模块的GWT应用程序。我的应用程序有插件(扩展),这意味着我必须在运行时获取模块,第三方开发人员需要在运行时上传他们的插件。转到here了解更多背景信息。我不知道在运行之前我会得到什么模块。据我所知,除了告诉服务器更改gwt.xml文件以继承正确的模块并在运行时重新编译时,你不能在运行时继承新模块,这将是非常慢的。 GWT warned against this,这是正确的。我遇到了很多问题。其中之一是模块都共享一些代码,我担心每个插件都会获得该代码。这将是非常低效的。我怎样才能提高效率呢?有更好的方法来获取插件吗?
答案 0 :(得分:1)
这是Code Splitting的用途。
您可以将每个可选模块拆分为代码片段,让编译器发挥其神奇作用。编译器将看到哪些代码片段共享相同的代码,并且它可能决定将这些片段合并为单个片段而不是将它们分开是更有效的。或者它可能会将一些代码移动到最后加载的片段中 - 在初始片段之后和用户需要的片段之后。
根据我的经验,与编译器自动为您做的事情相比,很难手动显着改进。我建议的唯一优化是使用最大数量的片段(即告诉编译器在合并类似片段时的积极程度) - 结果会略有不同,您可以根据预期的应用选择最佳选项使用模式。