Backbone und RequireJS effektives Laden

8

Ich habe mir viele Beispiele im Internet angeschaut, wie man BB-Anwendungen mit requireJS entwickelt, aber ich bin irgendwie verloren.

Ich denke AMD hat ein Ziel, Dateien nur dann zu laden, wenn sie wirklich benötigt werden. Nicht früher.

Warum sehe ich Beispiele nur dort, wo der Entwickler fast jede Datei als Abhängigkeit am Anfang seiner Hauptdatei ablegt?

Hier ist ein Beispiel: Ссылка

Diese Anwendung lädt sofort main.js, die von app.js abhängt, die Router / home.js lädt, die views / view.js benötigen, die die Vorlage der Ansicht laden und models / model.js, die ... und enden.

Ich kann nicht sehen, wie diese Anwendung beispielsweise um weitere Ansichten erweitert wird, bei denen Abhängigkeiten von Ansichten (Modelle, Vorlagen, Sammlungen, APIs von Drittanbietern usw.) nur geladen werden, wenn der Router sie aufruft und initialisiert. Anderenfalls wäre es sinnlos, AMD zu verwenden, wo Sie alle Ihre Dateien laden, wenn Sie Ihre App initialisieren.

Ähnliches Beispiel hier: Ссылка siehe router.js file.Aktuell lädt es "Ansichten / Projekte / Liste" und "Ansichten / Benutzer / Liste" Abhängigkeiten, während der Router noch nicht weiß, ob der Benutzer sie in der Zukunft brauchen oder nicht.

Bitte beraten, danke im Voraus!

    
zsitro 27.03.2013, 17:47
quelle

1 Antwort

6

In einer so kleinen Beispiel-App ist es etwas schwierig zu sehen, weil Sie etwas auf die ursprüngliche Route laden müssen und etwas in Backbone normalerweise ein Modell bedeutet , eine Sammlung und eine Ansicht. Da das von Ihnen verlinkte Beispiel nur jeweils eins enthält, laden Sie ja fast alles.

Wo Sie beginnen, die "on demand" -Funktion zu sehen, wo Sie zusätzliche Routen / Ansichten / Modelle / etc hinzufügen. Beachten Sie jedoch, dass On-Demand-Laden wahrscheinlich ein sekundäres Ziel von AMD / RequireJS ist. Das Hauptziel ist Modularität . Sie geben Ihnen dann viele Möglichkeiten, entweder Dinge auf Nachfrage zu laden oder alles über den Optimierer zu bündeln >

Auch gibt es nichts, was besagt, dass Sie alle require () am Anfang der Datei setzen müssen. Sie können sie später tun (z. B. beim Initiieren einer Route). Hier ist eine modifizierte Version von home.js aus Ihrem ersten verknüpften Beispiel. Wenn Sie Chrome-Entwicklungstools verwenden, können Sie beim "Debugger" auf die Registerkarte "Netzwerk" zugreifen. Anweisung unterbricht die Ausführung. Fahren Sie dann mit der Ausführung fort und sehen Sie, wie die restlichen Skripte geladen werden.

%Vor%

Siehe Artikel dieser Person für mehr Hintergrund und wohin Sie als nächstes gehen könnten.

    
explunit 27.03.2013, 18:01
quelle