2014-06-16 11 views
5

Ember Data bewegt sich schnell von Version zu Version und die Methode zum Speichern von Daten hat sich mit ihm geändert. Gerade jetzt mit der Version 1.0.0-beta.8.2a68c63a ist die richtige Methode, einen Datensatz zu aktualisieren und dann eine record.save() auszuführen, um eine PUT-Anfrage zurück an den Server auszulösen. Mit meiner aktuellen App aktualisiere ich mehrere Datensätze gleichzeitig und das könnte 50+ PUT Ajax Anfragen zurück zum Server beinhalten. Wir sind besorgt über Probleme mit der Leistung und Effizienz und haben keine Dokumentation für Batch-Anfragen gefunden. Wenn überhaupt, haben wir online viele andere Leute gefunden, die dasselbe machen wollen und keine gute Lösung gefunden haben.Ember Daten Bulk speichert auf Server

Im Moment bin ich dabei, diese Objekte manuell zu serialisieren und sie auf dem Server zu speichern, was ich für den ganzen Punkt von Ember Data hielt. Vielleicht ist es in meinem besten Interesse, überhaupt keine Ember-Daten zu verwenden und CRUD-Anfragen manuell zu codieren und meine eigene Datenschicht für all dies zu erstellen und nur ArrayControllers und ObjectControllers zu verwenden, um die Daten in den Lenkervorlagen zu speichern. Es scheint, als wäre der Vorteil, dass es so funktionieren würde, wie ich es brauche (Batch-Anfragen) und der Code nicht mit zukünftigen Versionen von Ember Data bricht. Irgendwelche Gedanken oder Lösungen?

+2

Wenn Sie über mehrere Ressourcentypen sprechen und mehrere Updates auf denselben Endpunkt treffen, würde ich komplett von den Ember-Daten abweichen. – Kingpin2k

+0

Ja, es geht darum, eine Liste von Blöcken auf einer Seite neu anzuordnen und dann ihre Position zu speichern, was bedeutet, dass alle Blöcke aktualisiert werden. Wenn Sie also einen verschieben, werden alle verschoben, wobei jedes Mal 50 bis 100 PUT-Befehle an den Server zurückgegeben werden können. Es scheint, als wäre Ember Data nicht wirklich bereit dafür. –

+2

Definitiv nicht, Sie sind besser dran, Ihre eigene Implementierung zu rollen, sollte es nicht zu schwer sein. – Kingpin2k

Antwort

0

Sie können es mit der DS.EmbeddedRecordsMixin tun. Wenn Ihr Page-Objekt viele Blöcke hat (zum Beispiel basierend auf Ihren Kommentar), dann würde page-serializer.js wie folgt aussehen:

import DS from 'ember-data'; 

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
    blocks: { serialize: 'records' } 
    } 
}); 

Jedes Mal, wenn Sie eine Seite Datensatz Datensätze alle verbundenen Blöcke sparen in diesem einen PUT-Anfrage enthalten sein .

Siehe Dokumentation here.

+0

Das mag jetzt die Situation sein, aber ich habe aufgehört, Ember zu benutzen, weil es zu groß und zu kompliziert geworden ist, um damit zu arbeiten. Ich denke, es ist wieder so ziemlich Sproutcore. –

+0

Keine Sorge. Ich habe mir gedacht, dass andere Leute das hier finden könnten. – andorov