Je développe une vue qui nécessite des méthodes multiples d'appel d'un service Web chaque fois que la vue est ouverte, puis-je utiliser $scope.$on('$ionicView.enter', function(){...})
ou cache:false
?
Quelle est la différence réelle entre chacun d'eux?
J'ai vraiment apprécié cette Q & A:
Où le Bipin Bhandari résume bien les options que nous avons avec un mécanisme de mise en cache ionique
cache: false
par cache: false
, $ionicConfigProvider.views.maxCache(0)
; Ainsi, avec la mise en cache en place, le contrôleur sera exécuté une seule fois:
Les vues sont mises en cache pour améliorer les performances. Lorsqu'une vue est parcourue, son élément est laissé dans le DOM et sa portée est déconnectée du cycle $ watch. Lorsque vous naviguez vers une vue qui est déjà mise en cache, sa portée est reconectée et l'élément existant, laissé dans le DOM, devient actif à nouveau.
Nous pouvons vous connecter à ces événements … pour faire des "choses toujours" avec ce contrôleur
$ionicView.enter
est un événement qui est diffusé chaque fois que la vue sélectionnée est activée.
cache:false
signifie que la page ne sera jamais mise en cache, et est donc complètement rechargée à chaque fois.
Je tente personnellement d'éviter d'utiliser le cache faux car il est une mauvaise performance mais a des effets secondaires car votre contrôleur ne sera pas initialisé à nouveau lorsque vous y retournez.
Au lieu de cela, lorsque j'entre dans une vue, j'utilise $ionicView.enter
ou $ionicView.afterEnter
pour déclencher plusieurs actions pour que la page termine complètement le chargement.