Ich schätze, das hängt von Ihren Nutzungsszenarien ab und davon, wie viel Sie den Anrufcode ändern möchten. Ich denke, du hast zwei Möglichkeiten:
Option 1: Nein Änderung am Clientcode (Aufruf)
Seltsamerweise gibt die kommentierte Quelle für Backbone.sync "Batching" als möglichen Grund für das Überschreiben an Die Methode sync
:
Verwenden Sie setTimeout, um Rapid-Fire-Updates in einer einzelnen Anfrage zu chargen.
Anstatt die Synchronisierung tatsächlich zu speichern, fügen Sie die Anforderung einer Warteschlange hinzu, und speichern Sie sie nur gelegentlich ab. _.throttle
oder _.delay
könnte helfe dir hier.
Option 2: Ändern Sie den Clientcode
Alternativ können Sie, anstatt save
in Ihren Modellen aufzurufen, eine Art save
-Methode zu Sammlungen hinzufügen. Sie müssten verfolgen, welche Modelle tatsächlich modifiziert wurden und daher aktualisiert werden müssen, da, soweit ich das beurteilen kann, Backbone nur weiß, ob sie neu sind oder nicht (aber ich könnte mich irren).
Hier ist, wie ich es gemacht habe
%Vor%funktioniert gut für mich, und ich benutze es, um jede Ajax-Anfrage aus einem beliebigen Modell oder einer Sammlung zu steuern
Tags und Links backbone.js