2017-08-09 2 views
2

J'utilise React Native (version 0.46) pour développer une application qui extrait quelques données de quelques ressources, les restitue et les stocke pour les afficher lorsque la connexion Internet n'est pas disponible .React Native - comment optimiser les performances des applications avec AsyncStorage

Ma question: J'essaie de voir s'il vaut mieux appliquer le «nouveau» plan mentionné ci-dessous au lieu du courant. Puisque RN utilise JavaScript Core, exécute-t-il le code d'une manière non bloquante comme Node.js? le conseil est apprécié.

Courant:
1. L'application se charge.
2. Vérifiez la connexion Internet (Asynchronously ofcourse).
3. S'il y a une connexion: d'abord, restituez les données mises en cache (si elles existent), puis récupérez les nouvelles données. S'il y a une connexion Internet mais pas de données mises en cache, récupérez simplement de nouvelles données.
4. S'il n'y a pas de connexion Internet, extraire de nouvelles données, les restituer et les stocker.

Nouveau: Plutôt que d'attendre la disponibilité d'Internet, im va tout simplement de rendre les données mises en cache si elles sont disponibles. Serait-ce une meilleure approche? ou y a-t-il un meilleur?

+1

Si vous avez beaucoup de données i serait allez pour prioriser le rendu des données mises en cache en premier. Mais cela dépend beaucoup du contexte de votre application. Si votre utilisateur a besoin des dernières données ou peut-il attendre pour les avoir. –

Répondre

1
  1. ajouter redux-persistent à l'application. Liste blanche toutes les clés d'état qui doivent être persistées.
  2. retard rendu jusqu'à ce que le stockage est réhydratée
  3. font les appels api s'il y a une connexion réseau et actualiser l'état si elles réussissent

https://github.com/rt2zz/redux-persist

Une autre solution pourrait être le redux- Module en ligne:

https://github.com/jevakallio/redux-offline