Ionic:已安装的Android应用程序中的缓慢转换

时间:2015-03-03 18:28:58

标签: android angularjs performance ionic-framework ionic

我在Android(Lollipop)设备上安装了一个Ionic应用程序(测试版14):

ionic platform add android
ionic run android

我还手动构建了应用程序并使用adb安装了它。

该应用程序使用离子侧菜单,简单视图(列表 - >详细信息 - >详细信息)之间转换的动画在功能强大的手机上非常滞后。侧面菜单滑出时的动画非常流畅。

为了进一步调查这种情况,我从我的开发机器上提供了www目录,并在手机上的Chrome中打开了该页面,它就像人们期望的那样顺利。该应用程序也可以在iOS设备上顺利运行。

当应用程序处于离子状态时,有没有人知道为什么它如此慢,但是当它在浏览器中呈现时会按预期执行?

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题。在需要加载大量信息的情况下更糟糕。在这种情况下,我通过设置:

来禁用过渡效果
nav-transition=none

如果您需要禁用控制器的转换,请执行以下操作:

app.controller('ctrl', function($scope,$state, $ionicViewSwitcher){ $scope.goBack = function(){
    $ionicViewSwitcher.nextTransition('none');
    $state.go('back');
});

答案 1 :(得分:2)

我找到了一些我在离子应用程序运输中遇到问题的解决方案..

  1. 状态更改后我使用此代码..
  2. // OnState Change ..

    $scope.$on('$stateChangeSuccess', function() {
    
        $ionicLoading.show();
    
       MyTeamListing();
    
      })
    

    每当我改变状态时命中服务..这会减慢应用程序。

    我只是删除第一行,我的代码工作正常......

    我不知道这是一个好的或坏的方式,但它为我工作很好..

    如果在事务上加载太多数据,则事务变得缓慢 所以我使用在事务完成后加载数据的离子事件。

    $scope.$on('$ionicView.afterEnter', function(){
                console.log("afterEnter"); 
                $ionicLoading.show();
                loadRemoteData();
                $ionicLoading.hide();
    });
    

答案 2 :(得分:0)

嗯,开发混合应用程序的好处是它的代码可重用性和更快的开发,然而,我们在开发上获得的优势会导致慢混合应用程序。如果我们遵循以下几点,我们可以使应用程序相对更快:

  • 绝对删除评论和不必要的功能
  • 最小化空白区域,使您的功能尽可能小
  • 使用缩小的css和js
  • 优化图像,图像越少,应用程序越快
  • 如果可能,请预加载图片check here
  • 将非必要的js文件保留在正文标记
  • 结尾之前的页面底部
  • 删除不必要的页面,不必要的滚动和大页面。
  • 限制输入框的使用;如果可能的话,使用单选按钮,复选框和组合框。
  • 除非极为必要,否则不要使用jquery库,请使用javascript