Ich bin derzeit einige Ember-Arrays wie so beobachtet:Ember.js: @each Beobachten, aber Iterieren nur über neue/geänderte Produkte
observe_array: function() {
this.get("my_array").forEach(function(e,i) {
// do something
});
}.observes("[email protected]");
Die meiste Zeit, wenn my_array aktualisiert wird, werden mehrere Elemente hinzugefügt am Einmal. Der Beobachter feuert jedoch nacheinander, wenn jedes Element hinzugefügt wird, was äußerst ineffizient wird. Gibt es das ohnehin effizienter? Im Wesentlichen muss ich in der Lage sein, ein mutiertes Array basierend auf "my_array" zu haben
Als Referenz werden realistische Größen von my_array zwischen 600-1200 Elemente sein. Der Block "tu etwas" beinhaltet einige Operationen, die etwas länger dauern - indem Sie Date-Objekte aus Strings erstellen und jedes Element in eine json-Repräsentation konvertieren.
Statt einen Beobachter zu tun, habe ich versucht, eine Eigenschaft mit der Cache gespeichert werden() Methode/Flagge, aber dass der Naht nicht Dinge sehr zu beschleunigen ....
wissen Sie, wenn Sie Array aktualisiert? –
@ sly7_7 Ich fürchte, ich verstehe nicht ganz, was Sie fragen, oder zumindest welche Art von Antwort Sie suchen. Das Array ist eigentlich ein Ember-Data-Record-Array und repräsentiert alle Elemente, die von einem bestimmten Modell geladen werden. –
Sie geben mir eine gute Antwort, auch wenn meine Frage ein Mist war ^^. Versuchen Sie my_array.isLoaded zu beobachten und sehen, ob es besser :) ist –