Ionic 3 减少启动时间

Posted

技术标签:

【中文标题】Ionic 3 减少启动时间【英文标题】:Ionic 3 reduce startup time 【发布时间】:2018-04-12 08:25:39 【问题描述】:

我正在开发一个 Ionic 3 应用程序(仅适用于 android)。一切都很好,除了我的应用程序的启动时间有点长(不过分,但像 4~5 秒)并且一些用户抱怨它。我很确定可以做得更好,因为我有其他很少需要超过 2 秒才能启动的 Ionic 应用程序。 (我自己隐藏了启动画面,一旦调用了platform.ready()

现在,我已经在使用我经常读到的一些技术:我正在调用enableProdMode() 并使用--prod 标志进行编译。我还添加了 ProGuard(不是为了加快速度,但仍然可以减少 Java 类的数量,所以为什么不这样做),我尝试使用 Crosswalk,但它导致性能更差。

所以我正在寻找下一步:我正在尝试诊断启动屏幕期间发生的情况,以及我可以做得更好。但我无法找到一种方法来获取关于什么需要很长时间以及问题出在哪里的数字或统计数据。本能地,我会说通过重构一些视图和减少代码中的本机插件数量来减少 Angular 类的数量可能会有所帮助,但我没有发现任何证据。

所以我的两个问题是:

在调用platform.ready 之前,有没有办法在启动画面期间查看需要花费的时间? 是否有一般提示,例如减少插件或类的数量以缩短启动时间?

【问题讨论】:

你使用了延迟加载吗? @fandro 你这是什么意思? 延迟加载是一项允许您在调用组件时加载组件的功能。我想你已经加载了 app.modules 中的所有页面和插件吧? 是的,我的app.module.ts 中的@NgModuledeclarationsentryComponents 中声明了我的所有页面。 问题来了 【参考方案1】:

您需要使用延迟加载。因此,您不会在启动时加载所有页面和插件。延迟加载允许您仅加载页面和插件(如果它被调用)。

这里有一些链接可以帮助您解决问题:

http://blog.ionic.io/ionic-and-lazy-loading-pt-1/

http://blog.ionic.io/ionic-and-lazy-loading-pt-2/

希望对你有帮助。

【讨论】:

以上是关于Ionic 3 减少启动时间的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 3 CLI 无法启动代理后面的项目

在 ionic 3 或 4 上将启动画面作为视频?

ionic 和 phonegap 构建(3.5.0)不显示自定义启动画面

Ionic3 组件懒加载

如何在 ionic 3 应用程序启动画面上设置自定义微调器

Ionic emulate ios:无法启动会话