0

我正在 GWT 中创建一个应用程序,我最近刚刚在那里实现了代码拆分。我将应用程序大小从 1.1MB 减少到 570kB,这很好,因此应用程序的启动时间现在更快(我们使用的是特殊服务器,其中 500kB 确实很重要......虽然对我的问题并不重要......)。应用程序启动后(换句话说,用户可以看到登录页面,可以登录并使用应用程序的基本部分),我想下载其余的片段。

我知道当需要片段中的代码时会下载片段。但是其中一个片段大约是 300kB。因此,当我在我的应用程序菜单中单击一个项目时,会导致该片段被下载,在用户得到响应之前会有一个非常明显的延迟(1 - 2 秒)。

现在我知道这很可能只发生一次,然后片段将被缓存一年,因此下次加载速度会更快。但是例如当我在另一台设备上再次尝试时,我将不得不再次下载片段。

我只需要确定,当用户使用 wifi 在手机/平板电脑上启动我的应用程序,然后断开 wifi 连接或超出其范围时,即使他没有,他仍然能够启动片段中的代码当他仍然连接到服务器时,不要启动导致下载它们的东西。

现在他必须打开 3 个菜单项,才能下载所有令人讨厌的片段。

简而言之:
我希望我的初始下载保持 570kB,并尽快在后台下载应用程序的其余部分(如果可能的话)。

编辑:我发现http://www.gwtproject.org/doc/latest/DevGuideCodeSplitting.html#sequence您可以在其中设置初始加载顺序,所以我想这就是我要找的。不确定它们是否是异步加载的,因为在下载片段后会出现登录屏幕。

4

1 回答 1

1

您可以在呈现登录面板后下载所有片段。只需在其余代码中调用一些方法 - 它不需要做一些可见的事情。

此外,如果您打算以这种方式加载所有代码,您只需要拆分一个片段 - 登录面板的入口点。每个分割点 (a) 略微增加了应用程序的整体大小,并且 (b) 有时会显着增加剩余片段的大小,该片段仍然需要加载才能显示第一个片段。因此,考虑到您的要求,除了初始片段和应用程序的其余部分之外,没有任何意义。

于 2016-09-13T15:45:45.830 回答