Kontext: Ich erstelle eine Anwendung, die mehrere große Sammlungen von Referenzdaten für den Betrieb benötigt. Ich beschränke mich nur auf HTML und Javascript (einschließlich JSON).
Frage : Wie starte ich eine Sammlung in Backbone.js, in der sich die Sammlungsobjekte im JSON-Format auf dem Server befinden und ich nur Javascript verwende?
Das weiß ich schon:
Das ist, was ich bisher herausgefunden habe:
%Vor%'dqApp' ist mein Anwendungsobjekt. Ich kann einen Spinner anzeigen und den Status eines Ladevorgangs aktualisieren, während Sammlungen gefüllt werden, indem Warnungen an das Anwendungsobjekt gesendet werden.
Eine mögliche Lösung besteht darin, Ihre Ansicht vom Status von fetch
abhängig zu machen, sodass sie erst instanziiert wird, wenn das Laden des Modells / der Sammlung abgeschlossen ist.
Denken Sie daran, dies ist ein Backbone-Anti-Pattern. Wenn Sie die Ansicht von Ihrer Sammlung / Ihrem Modell abhängig machen, führt dies wahrscheinlich zu Verzögerungen bei der Benutzeroberfläche. Aus diesem Grund empfehlen wir Ihnen, Ihre Daten zu laden, indem Sie den json direkt in Ihre Seite einfügen.
Dies löst jedoch nicht Ihre Situation, in der Sie Daten in einer serverlosen Situation hochladen müssen. Es ist einfach, json-Daten dynamisch in Ihre Seite mit ein paar Zeilen Ruby / PHP / etc einzubetten, aber wenn Sie nur
Wenn Sie die Sammlung mit fetch()
laden, können Sie Folgendes verwenden:
Meine bevorzugte Methode ist die Verwendung von ajax (z. B. .getJSON
, .ajax
) und das Speichern des zurückgegebenen jqXHR-Objekts (oder XMLHTTPRequest, wenn Sie nicht jQuery verwenden) für eine Eigenschaft in Ihrem Modell. Auf diese Weise haben Sie eine genauere Kontrolle und können die verzögerte Objekt -Antwort verwenden, um nach dem Status zu suchen des Anrufs, bevor Sie Ihre Ansicht erstellen.
Tags und Links javascript backbone.js backbone.js-collections