68Punkte

Backbone JS

53Punkte

Knockout JS

Vergleichssieger
Backbone JS
Knockout JS
vs
vs

52 Fakten im Vergleich

Backbone JS vs Knockout JS

Backbone JS
Knockout JS

Warum ist Backbone JS besser als Knockout JS?

  • 24KB kleinere Dateigröße ohne Abhängigkeiten
    ?

    19KBvs43KB
  • Unterstützt Routing und Deep Linking
    ?
  • Kann auf dem Server gerendert werden
    ?
  • Unterstützt zusammengesetzte (einseitige) Ansichten
    ?
  • Kann um ein Plugin erweitert werden um eine wechselseitige Datenbindung zu haben
    ?
  • Lässt sich gut mit Bibliotheken erweitern um Promises/A+ Unterstützung zu erhalten.
    ?
  • Hat ein gängiges Boilerplate-Projekt
    ?
  • 120 mehr Plugins
    ?

    153vs33

Warum ist Knockout JS besser als Backbone JS?

  • Hat wechselseitige Datenbindung
    ?
  • Unterstützt einseitige Datenbindung
    ?
  • Unterstützt berechnete Eigenschaften
    ?
  • Reicht über HTML hinaus
    ?
  • 2 weniger Abhängigkeiten
    ?
  • Unterstützt 1 frühere Versionen von Internet Explorer
    ?

    6vs7
  • Hat spezielle Tools zur Fehlersuche
    ?

Allgemeine Information

Hat eine automatische View-Filterung
Backbone JS
Knockout JS
Hat einen Mechanismus der Views anhand von Variablen (z.B. beim Suchen) filtert, ohne zusätzlichen Code schreiben zu müssen.
Verwendet eine Template-Engine
Backbone JS
Knockout JS
Template-Engines ermöglichen eine leichte und flexible UI-Erstellung.
Unterstützt berechnete Eigenschaften
Backbone JS
Knockout JS
Erlaubt den Gebrauch von Funktionen als Bestandteile um die Bestandteile von Objekten auszurechnen.
Benutzt JSX zum Templating
Backbone JS
Knockout JS
JSX ist eine Templating-Engine die es Entwicklern ermöglicht Markup direkt in ihren Code zu schreiben, welcher dann zu einfachem JavaScript live-oder vorkompiliert wird. Das eliminiert die Trennung zwischen View-Markup und Code und ermöglicht schnelle Verbesserungen über String-based templating Sprachen.
Reicht über HTML hinaus
Backbone JS
Knockout JS
Manche Leute sehen es als Vorteil durch die Eliminierung des Zuschlags einer anderen Template-Sprache.
Unter MIT-Lizenz veröffentlicht
Backbone JS
Knockout JS
Die MIT-Lizenz ist eine liberale Lizenz die sämtliche Gebrauchsformen, einschließlich des unternehmerischen Gebrauchs, ohne Gewähr erlaubt.
Integriert sich mit anderen MV* Frameworks
Backbone JS
Knockout JS
Kann dazu benutzt werden, um einen Teil eines anderen Frameworks zu ersetzen, ohne dabei die restlichen Funktionen zu entfernen.
Ermöglicht innerhalb eines Templates View-Templates in top-Level Views zu verschachteln.
Hat ein gängiges Boilerplate-Projekt
Backbone JS
Knockout JS
Hat ein offizielles oder bekanntes Boilerplate-Projekt mit dem empfohlene Datenstrukturen angelegt werden können und Entwicklern hilft, schneller anzufangen.

Plugins

Hat ein Plugin mit dem man auf einfache Weise View Animation kreieren kann.
Von den offiziellen Pluginquellen. Plugins bieten einen leichten Weg die Funktionalität zu steigern oder andere Dienste zu integrieren. Eine Vielzahl an Plugins ist auf eine aktive Community zurückzuführen, sowie darauf, dass das Framework sehr kompatibel und/oder flexibel ist.
Hat eine festgelegte Plugin-Quelle.
Backbone JS
Knockout JS
Das zeigt, dass das Framework ein lebendes Ökosystem und eine starke Gemeinschaftsunterstützung hat, sowie mehr Flexibilität und schnellere Entwicklung ermöglicht.
Plugin um Nutzereingaben zu prüfen bevor diese verarbeitet oder an einen Server geschickt werden. Obwohl dieses Verfahren nicht die Serverprüfung ersetzt, kann es das Nutzererlebnis enorm steigern.
Beinhaltet Dienste um Modelle mit deren Server-Repräsentation synchron zu halten ohne Boilerplate Ajax Calls schreiben zu müssen.
Hat ein Plugin um Modelle mit ihren Server-Repräsentationen zu synchronisieren ohne Boilerplate Ajax calls schreiben zu müssen.
Unterstützt Animationen
Backbone JS
Knockout JS
Enthält einfache Möglichkeiten um View-Animations zu kreieren.
Hat ein Plugin welches eine einfache Funktion zum synchronisieren von Modellen mit HTML5 LocalStorge anbietet.

Libraries & Packages

Um die DOM-Manipulation zu bedienen, benötigt man weder eine bestimmte Bibliothek (so wie jQuery, Zepto oder MooTools), noch wird spezifisch auf eine hingewiesen; der Entwickler hat die Freiheit sich eine auszusuchen.
Asynchrone Moduldefinitionsbibliotheken ermöglichen einfache und fehlerfreie modulare Programmierung. Sollte ein Framework mit diesen Bibliotheken nicht optimal funktionieren, weist es wahrscheinlich andere Mittel auf, um Komponente zu modularisieren und um Abhängigkeiten zu beheben.
Bower ist ein leicht zu bedienender, npm-artiger Paketmanager, vor allem für Applikationen.
Der Node Package Manager kann auch benutzt werden um front end Scripts zu managen.
Beinhaltet jQuery Lite
Backbone JS
Knockout JS
Benutzt jQuery Lite Elemente, wenn DOM Manipulation notwendig ist. Auf diesem Weg profitieren Entwickler von den komfortablen Helferfunktionen, ohne die gesamte Bibliothek einfügen zu müssen. In vielen Anwendungsfällen beendet dies die Abhängigkeit des Projekts von jQuery.
Beinhaltet die Underscore.js Bibliothek
Backbone JS
Knockout JS
Hat die bekannte Dienstbibliothek underscore.js als Abhängigkeit. Underscore enthält Hilfsfunktionen für Listenmanipulation und funktionale Programmierung.

Data binding

Hat wechselseitige Datenbindung
Backbone JS
Knockout JS
Models und Views können daran gebunden werden sich gegenseitig zu aktualisieren.
Unterstützt einseitige Datenbindung
Backbone JS
Knockout JS
Views können daran gebunden werden sich automatisch zu aktualisieren sobald sich ein beobachtetes Objekt verändert.
Modelle sind einfache JavaScipt-Objekte
Backbone JS
Knockout JS
Dies sorgt für leichteren Datenaustausch zwischen der Applikation und REST-Diensten oder dem LocalStorage. Es vermeidet außerdem Komplexität, die durch Getter- und Setter-Funktionen entstehen würde.
Ermöglicht den Gebrauch von view Mixins
Backbone JS
Knockout JS
Mixins ist eine Programmiermethode, die es verschiedenen Objekten ermöglicht, gleiches Verhalten zu benutzen, ohne Objekt-orientierte Vererbung zu brauchen.
Kann erweitert werden, damit Modelle und Ansichten sich gegenseitig aktualisieren können. Diese Erweiterung erhöht die Dateigröße, sorgt allerdings auch für mehr Flexibilität.
Benutzt Observables für Datenbindungen
Backbone JS
Knockout JS
Modelle werden auf Veränderungen beobachtet. Dies ist ein bekanntes Muster. In einigen Fällen kann es effektiver sein als Dirty-Checking.
Benutzt Dirty-Checking
Backbone JS
Knockout JS
Prüft Änderungen und aktualisiert die betroffenen Bereiche. Kann in manchen Fällen effektiver sein als Beobachter.

Leistung

Eine kleinere Dateigröße resultiert in schnelleren Ladezeiten.
Unterstützt Routing und Deep Linking
Backbone JS
Knockout JS
Routing ermöglicht Interaktion mit der Browser URL. Dies sorgt für ein umfassendes Benutzererlebnis, besonders in One-Page-Apps.
Benutzt Promises
Backbone JS
Knockout JS
Hat eine interne Implementierung der Promises/A+ Spezifikation. Promises sind eine beliebte Alternative zu Callbacks beim Umgang mit Serverantworten.
Unterstützt eine Template-Engine die auf dem Server vorgerendert werden kann. Dies kann unter Umständen die Webseitengeschwindigkeit erhöhen, vor allem bei Geräten mit geringer Rechenleistung.
Kann auf dem Server gerendert werden
Backbone JS
Knockout JS
Suchmaschinen-Crawlability wird erheblich verbessert. Vor allem bei Geräten mit geringer Rechenleistung kann es möglicherweise den Page Speed verbessern.
Hat Dependency Injection
Backbone JS
Knockout JS
Testbarkeit und und Modularität wird dadurch gesteigert.
Weniger Abhängigkeiten resultieren in weniger zusätzlichen Scripts, die einzufügen wären, was für gewöhnlich in geringeren Entwicklungsanforderungen und schnelleren Ladezeiten resultiert.
Aktualisiert die DOM asynchron
Backbone JS
Knockout JS
Modelländerungen resultieren nicht unmittelbar in View-Updates, sondern werden gruppiert und gemeinsam angewandt. Dies kann deutlich performanter sein als sofortige View-Updates.
Ermöglicht den Gebrauch von Bibliotheken wie jQuery oder Deferred um Promises zu unterstützen. Promises ist eine beliebte Alternative zu Callbacks beim Umgang mit Serverantworten.

Welches sind die besten MV* Frameworks?

Zeige alle
Die Seite ist nur auf Deutsch verfügbar.