我有一个带有Angular的Ionic3应用程序,我知道它不是一个纯安卓或Swift的本地应用程序。但是性能非常差。我只有一个空白的projekt,但如果我启动它,我会得到1-2秒的黑屏和5-8秒的闪屏/白屏。
我试图将延迟加载添加到页面和组件中,但这也很糟糕。如果你点击一个标签,它会冻结1秒,直到延迟加载的页面打开。
这是正常的吗?我可以减少加载时间吗?
发布于 2018-07-12 22:00:22
首先,使用离子v4的启动时间会/应该会更好,因为他们将使用web组件
其次,关于你的构建时间,如果你想改善它,第一件开箱即用的事情就是使用--prod来执行你的构建,以便告诉ionic-app-scripts对你的代码应用方法(比如缩小),以减少包的大小(更小的包=更快的引导)
ionic cordova build ios/android --prod此外,你应该检查你的config.xml,看看你的科尔多瓦闪屏的参数是什么。确保您没有设置长时间的延迟,这会让您感觉应用程序需要时间才能启动,而实际上应用程序是在闪屏后面加载的
最后,您还有工作要做,因为正如我上面所说的,包的大小很重要。但它也是关于字体、图像等,越少越好。例如,您可以检查代码以找出实际使用的内容,并检查库以确保只包含所需的内容(例如,如果使用rxjs,则只导入lettable运算符,而不是所有库)。如果感兴趣,我在离子论坛上编辑了一些关于这个主题https://forum.ionicframework.com/t/app-boot-time-current-state-and-best-practices的帖子
附注: Ionic v3性能良好,启动时间可以接受/很好。我的应用程序差不多。在iPhone 6s上,只需2.5秒即可启动40个页面、60个组件、太多插件等
发布于 2018-07-16 18:23:29
你的偏好可能也有问题。请尝试在配置中更改它们,如下所示。
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />在app.component.ts中
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
// statusBar.styleDefault();
statusBar.styleLightContent();
statusBar.backgroundColorByHexString('B27F16');
setTimeout(() => {
splashScreen.hide();
}, 100);
});https://stackoverflow.com/questions/51301998
复制相似问题