2015-04-15 7 views
8

Ich habe den Unterschied zwischen Single-Page-Apps und Multi-Page-Apps untersucht, und ich denke, dass ich gut sehe, wie sie sich unterscheiden. Eine Einzelseiten-App beginnt mit dem Laden einer einzelnen HTML-Seite und aktualisiert dann die Seite nie wieder oder überschreibt das Original, sofern die Anwendung nicht anderweitig aktualisiert wird (Browseraktualisierung usw.). Beispiel: Das angularJS-Seed-Projekt: angular-seed hat einen Index .html Datei. Diese Datei ist die einzelne Seite, die der Server an das Frontend sendet, und danach werden alle anderen (möglichen) Seiten asynchron unter Verwendung von AJAX gesendet. Also, wenn Sie App nur mit dem angularjs Seed erstellen, wird es immer nur eine SPA-Anwendung sein, habe ich recht?AngularJS: Einzelseite und mehrseitige App Unterschied und Verwendung in der Praxis?

Wie in der Praxis würden Sie dann eine mehrseitige Anwendung mit angularjs erstellen? Brauchst du dann nicht mehrere angularJS-Anwendungen? Müssten Sie für jede dieser angularJS-Anwendungen ein separates Routing haben? Und warum sollte man eine mehrseitige Anwendung für angularJS machen wollen? Denn man könnte das erste index.html immer nur als eine Shell ohne echten Inhalt verwenden und dann separate Containerseiten für verschiedene Seiten haben. Könnte man sagen, dass die angleJS multipage App eine Anwendung wäre, die nur viele SPA angularJS Anwendungen enthalten würde? Können Sie im SPA die Zurück-Taste des Browsers verwenden, um zur letzten Ansicht zurückzukehren?

Antwort

1

Ja, Sie haben die Idee von SPA und MPA richtig.

Mit Angular.js können Sie SPAs erstellen, Sie werden jedoch nicht gezwungen. In einem MPA würde ich nicht von mehreren Angular-Anwendungen sprechen, da Sie Angular.js-Module einfach über mehrere HTML-Seiten verteilt hätten. Die Seitenfluss- oder Routing-Logik wäre dann in Angular.js-Controllern, in einfachen Hyperlinks oder im Back-End auf dem Server enthalten.

Es könnte Gründe geben, nicht eine ganze Anwendung unter Angular.js zu setzen. Möglicherweise wird der Authentifizierungsteil einer Webanwendung aus bestimmten Gründen getrennt gespeichert ...

In SPAs können Sie den Zurück-Button des Browsers verwenden. Du musst das nur irgendwie implementieren. Twitter löst dieses Problem, indem es den Status seiner Webanwendung in die URL codiert - wenn Sie Twitter verwenden, haben Sie vielleicht die Symbole (#!) In der Adressleiste bemerkt.

+0

Aber brauchen Sie nicht ng-app in html um angularjs Dokument zu kompilieren? Sie können also keine angular.js-Module über andere HTML-Seiten haben, ohne dass diese Seiten auch das ng-app-Modul enthalten? Und wenn sie das ng-app-Modul enthalten, werden sie als separate Anwendung betrachtet? https://docs.angularjs.org/api/ng/directive/ngApp. Auch ich verstehe den Routing-Teil nicht. Gäbe es dann keine normale Winkelführung? –

+1

Ja, Sie müssen Angular.js irgendwie pro Seite initialisieren - siehe auch https://docs.angularjs.org/guide/bootstrap - aber das allein macht nicht zwei Anwendungen. –

+0

Wenn Sie "Anwendung" sagen, sprechen Sie über Angular.js Anwendungen, richtig? In diesem Fall können Sie eine Angular.js-Anwendung auf mehreren Seiten teilen (Sie müssten die Daten irgendwie von einer Seite auf eine andere übertragen ...). Außerdem können Sie mehrere Angular.js-Anwendungen auf einer einzigen Seite haben. Oder Sie könnten eine Web-Anwendung haben, die aus einer Seite mit einer Angular.js-Anwendung und einer anderen einfachen HTML-Seite besteht ... –

Verwandte Themen