Ich habe ein Problem und ich würde Ihre Hilfe lieben! Ich verfolge eine Autofahrt mit einer Bibliothek (https://github.com/transistorsoft/react-native-background-geolocation) und speichere jede Sekunde den aktuellen Positionsstatus im Redux-Zustand. Dies macht eine wirklich große Menge von Objekten (Tausende) mit Daten wie Koordinaten, Geschwindigkeit, Höhe, etc ... und das macht ein Problem mit der Leistung (langsames Tracking der aktuellen Position) ... Ich muss die Koordinaten in der Karte in der Reihenfolge anzeigen um die ganze Fahrt zu wissen, während er drin ist ... Denkst du, ich muss es außerhalb des Redux-Status speichern?Redux-Leistung in langen Koordinatenfeldern. Ich muss alle Koordinaten auf einem riesigen Array bekommen, um in einer Karte zu zeigen
Antwort
Es wäre besser, es außerhalb des Redux zu speichern, aber Sie können auch die Daten mit Ihrem Backend synchronisieren und die synchronisierten Daten von Redux entfernen. Aber wenn Sie eine offline-erste Anwendung haben, können Sie lokale Datenbanken verwenden.
Zwei gute Möglichkeiten:
SQLite: https://github.com/andpor/react-native-sqlite-storage
und
Couchbase Lite: https://github.com/couchbaselabs/react-native-couchbase-lite
Beide Ihnen Optionen zu fragen geben, die für die Visualisierung Abfrage gut wäre.
Die Frage ist, wie Sie heute mit den Daten umgehen. Wenn Sie Unveränderlichkeit verwenden (als redux expect), würde ich vorschlagen, dass Sie die Immutable.js Bibliothek oder ähnliches verwenden würden. Andernfalls bedeutet jede Änderung, dass Sie das gesamte Array ändern müssen. Immutable.js ist auf diese Weise intelligent, da es Ihnen erlaubt, es zu ändern, ohne dass es sich tatsächlich mehr verändert als notwendig (hinter den Kulissen). Stellen Sie sicher, dass Sie pure components erstellen und dass die Komponente ihre Koordinaten direkt aus dem Speicher liest und nicht als übergebene Eigenschaft vom übergeordneten Element (um unnötige Neuzeichnungen zu vermeiden).
Ein anderer Vorschlag wäre, jedes Trip-Segment zu einer reaktiven Komponente zu machen, die nur zwei Datenpunkte in Ihrem Set kennt. Dann würde diese Reaktionskomponente nur aktualisiert werden, wenn sich die Koordinaten ändern (was niemals der Fall sein wird, da keiner der Datenpunkte später geändert werden soll).
Möglicherweise gibt es keine "perfekte Antwort" auf Ihre Frage, nicht ohne Ihren Code zu sehen. Mit den von Ihnen bereitgestellten Informationen denke ich, dass die obigen Vorschläge Ihnen einige Optionen zur Verbesserung der Leistung geben könnten.
- 1. Pathfinding Auf einer riesigen Karte
- 2. Swift Array um alle Elemente zu bekommen +
- 3. Algorithmus, um MST in einem riesigen vollständigen Graph zu finden
- 4. Anfügen von Koordinaten in einem Array
- 5. Api, um Punkte auf Karte zu zeichnen
- 6. Ich muss langen Text in einem Container umhüllen
- 7. Android Karte Zoom zu Alle Pins zeigen
- 8. Um Koordinaten in die rote Linie zu bekommen
- 9. Parse String, um alle Werte in einem Array zu erhalten
- 10. AngularJS zeigen vordefinierte Koordinaten des Benutzers auf der Karte
- 11. Wie aggregiert man auf einem riesigen Array in MongoDB?
- 12. Lesen von einem riesigen MemoryStream in C#
- 13. Hinzufügen von Koordinaten zu einem Array in Python 3
- 14. Ich muss alle Cookies vom Browser bekommen
- 15. WebSQL verwenden, um Zeilen auszuwählen, in einem Array zu bekommen
- 16. Zeigen auf ein Array in einem 2D-Array in C
- 17. Die nächsten Koordinaten in einem Array finden?
- 18. Erstellen Sie einen Cursor, um auf ein Array zu zeigen
- 19. bekommen Array Koordinaten (8 Damen-Problem)
- 20. Wie kann ich Koordinaten auf einem Quadrat in Koordinaten auf einem Kreis umwandeln?
- 21. Kombinieren einer riesigen Liste von Datenrahmen in einem einzigen Datenrahmen, ohne einen Speicherfehler zu bekommen?
- 22. Wie greife ich auf alle Daten in einer Excel-Zelle zu? Ich muss in MATLAB importieren
- 23. Ich muss USA interaktiven Karte in Flex
- 24. Zeigen Sie Werte auf bestimmte Koordinaten oben auf einem Bild
- 25. Zeigen Sie einige GPS-Position auf Karte
- 26. Wie zeige ich eine Karte in zwei Koordinaten an?
- 27. Wie benutze ich IJavaProject # findType(), um alle Methoden in einem Java-Projekt zu bekommen?
- 28. verwendet eine Absicht, um die Karte Kosten Geld zu zeigen?
- 29. Ausdruck, um alle Objekte zu finden, die alle Elemente in einem Array von ganzen Zahlen enthalten
- 30. bekommen eine Ausgabe in Javascript, um als Link zu zeigen
Sehr gute Hinweise. –
Ich glaube, die Verwendung von Immutable.Js in redux ist ein Optimize Way. Guter Vorschlag . https://redux.js.org/docs/recipes/UsingImmutableJS.html –
Super! Vielen Dank :) – gianpieroco