我正在GWT中创建一个应用程序,我最近刚刚在那里实现了代码分割。我将应用程序大小从1.1MB减少到570kB,这很好,所以应用程序的启动时间现在更快(我们使用特殊服务器,其中500kB真正重要......虽然对我的问题不重要......)。应用程序启动后(换句话说,用户可以看到登录页面,可以登录并使用应用程序的基本部分),我想下载其余的片段。
我知道当需要片段中的代码时,将下载片段。但其中一个碎片大约是300kB。因此,当我在项目的应用程序菜单中单击导致此片段被下载时,在用户获得响应之前会有非常明显的延迟(1 - 2s)。
现在我明白这很可能只发生一次,然后片段将缓存一年,所以下次加载速度会更快。但是,例如当我在另一台设备上再次尝试时,我将不得不再次下载片段。
我只需要确定,当用户使用wifi在手机/平板电脑上启动我的应用程序,然后从wifi断开连接或超出其范围时,他仍然可以在片段中启动代码,甚至如果他还没有启动那些在他仍然连接到服务器时导致下载的东西。
现在他必须打开3个菜单项,下载所有烦人的片段。
所以简而言之:
我希望我的初始下载保持570kB,并在后台尽快下载应用程序的其余部分(如果可能)。
编辑: 我发现http://www.gwtproject.org/doc/latest/DevGuideCodeSplitting.html#sequence你可以设置初始加载序列,所以我想这就是我要找的东西。不确定它们是否异步加载,因为在下载片段后会出现登录屏幕。
答案 0 :(得分:1)
您可以在渲染登录面板后下载所有片段。只需在其余代码中调用一些方法 - 它不需要做一些可见的事情。
此外,如果您打算以这种方式加载所有代码,您只需要拆分一个片段 - 您的入口点与登录面板。每个分割点(a)略微增加应用程序的整体大小,并且(b)有时显着增加剩余片段的大小,该剩余片段仍然需要加载以显示第一个片段。因此,根据您的要求,除了初始片段和应用程序的其余部分之外没有任何意义。