Ионные: медленные переходы в установленном приложении для Android
Я установил приложение Ionic (бета-версия 14) на своем устройстве Android (Lollipop), используя:
ionic platform add android
ionic run android
Я также вручную создал приложение и установил его с помощью adb.
В приложении используются ионно-боковые меню, а анимации для переходов между простыми представлениями (список → подробно → подробно) невероятно отстают на удобном телефоне. Анимация, когда боковое меню скользит, очень контрастное.
Чтобы продолжить расследование ситуации, я служил в каталоге www с моего компьютера-разработчика и открыл эту страницу в Chrome на телефоне, и она была такой же гладкой, как и следовало ожидать. Приложение также работает плавно на устройствах iOS.
Есть ли у кого-нибудь подсказки относительно того, почему это так медленно, когда приложение находится в Ionic, но выполняет как ожидалось, когда оно просто отображается в браузере?
Ответы
Ответ 1
Я столкнулся с той же проблемой. Это хуже, если вам нужно загрузить много информации. В этом случае я отключу эффект перехода, установив:
nav-transition=none
если вам нужно отключить переход от вашего контроллера, выполните следующие действия:
app.controller('ctrl', function($scope,$state, $ionicViewSwitcher){ $scope.goBack = function(){
$ionicViewSwitcher.nextTransition('none');
$state.go('back');
});
Ответ 2
Я нашел некоторые решения, с помощью которых я сталкиваюсь с проблемой при переносе ионных приложений.
- После изменения состояния я использую этот код.
//OnState Change..
$scope.$on('$stateChangeSuccess', function() {
$ionicLoading.show();
MyTeamListing();
})
которые ударяются каждый раз, когда я изменяю состояние.., которое замедляет приложение.
я просто удаляю первую строку, и мой код работает нормально...
Я не знаю, что это хороший или плохой способ, но он работает для меня хорошо.
Транзакция становится медленной, если слишком много данных является нагрузкой на транзакцию
так что я использую ионные события, которые загружают данные после совершения транзакции.
$scope.$on('$ionicView.afterEnter', function(){
console.log("afterEnter");
$ionicLoading.show();
loadRemoteData();
$ionicLoading.hide();
});
Ответ 3
Ну, преимущества развитого гибридного приложения - его повторная юзабилити кода и более быстрое развитие, однако то, что мы получаем от разработки, приводит к медленным гибридным приложениям. Мы можем сделать приложение относительно быстрее, если следовать следующим пунктам:
- Абсолютно удалить комментарии и ненужные функции.
- свести к минимуму пустое пространство, сделать ваши функции как можно меньше
- использовать minified css и js
- Оптимизировать изображения, чем меньше изображений, тем быстрее приложение
- если возможно, предварительно загрузите изображения здесь >
- сохранить несущественный js файл в нижней части страницы перед тегом body
- удалите ненужные страницы, ненужную прокрутку и большие страницы.
- ограничить использование полей ввода; используйте радиокнопки, флажки и комбобокс, если это возможно.
- не используйте jQuery-библиотеку, если она не нужна, используйте javascript