现有项目的 gwt 代码拆分
gwt code splitting with an existing Project
我有一个包含移动和桌面视图的项目,有 100 多个 classes,我现在的问题是:拆分此代码的最佳方法是什么?
查看 class 超过 10kB 的编译器报告并通过 runAsync 调用它?
通常,您根据用户行为而不是代码结构将应用程序拆分为逻辑部分。例如,如果所有用户都进入视图 A,然后只有部分用户进入视图 B,很少有用户进入视图 C(例如 "Settings" 视图),那么视图 B 是一个很好的候选者,而视图 C 是一个分裂的明显候选者。
拆分代码时,除了每个拆分点外,还有两个关键片段:初始片段和剩余片段。编译器根据您的拆分点决定哪个 class 去哪里。如果从许多不同的地方调用 class,它将在初始片段或剩余片段中结束,这意味着当用户访问您的应用程序时它将始终被加载。只有 class 特定于拆分片段的元素才会在需要时加载。
最好的方法是在看起来最有希望的地方创建一个分割点,编译应用程序,然后检查编译报告,看看你的代码大小是如何在初始片段和分割片段之间分解的, 和剩下的片段。它会给你一个好主意,如果拆分对你的应用来说是值得的。
我有一个包含移动和桌面视图的项目,有 100 多个 classes,我现在的问题是:拆分此代码的最佳方法是什么?
查看 class 超过 10kB 的编译器报告并通过 runAsync 调用它?
通常,您根据用户行为而不是代码结构将应用程序拆分为逻辑部分。例如,如果所有用户都进入视图 A,然后只有部分用户进入视图 B,很少有用户进入视图 C(例如 "Settings" 视图),那么视图 B 是一个很好的候选者,而视图 C 是一个分裂的明显候选者。
拆分代码时,除了每个拆分点外,还有两个关键片段:初始片段和剩余片段。编译器根据您的拆分点决定哪个 class 去哪里。如果从许多不同的地方调用 class,它将在初始片段或剩余片段中结束,这意味着当用户访问您的应用程序时它将始终被加载。只有 class 特定于拆分片段的元素才会在需要时加载。
最好的方法是在看起来最有希望的地方创建一个分割点,编译应用程序,然后检查编译报告,看看你的代码大小是如何在初始片段和分割片段之间分解的, 和剩下的片段。它会给你一个好主意,如果拆分对你的应用来说是值得的。