67punkter

Backbone JS

52punkter

Knockout JS

Vinder
Backbone JS
Knockout JS
vs
vs

52 fakta i sammenligning

Backbone JS vs Knockout JS

Backbone JS
Knockout JS

Hvorfor er Backbone JS bedre end Knockout JS?

  • 24KB mindre filstørrelse uden afhængigheder
    ?

    19KBvs43KB
  • Understøtter routing og deep linking
    ?
  • Kan renderes på serveren
    ?
  • Understøtter sammensatte (delvise) visninger
    ?
  • Kan udvides med et populært plugin til to-vejs databinding
    ?
  • Passer godt sammen med tredje-parts biblioteker for at aktivere understøttelse af Promises/A+
    ?
  • Anvender et populært boilerplate-projekt
    ?
  • 120 flere plugins
    ?

    153vs33

Hvorfor er Knockout JS bedre end Backbone JS?

  • Har to-vejs databinding
    ?
  • Understøtter en-vejs databinding
    ?
  • Understøtter beregnede egenskaber
    ?
  • Udvider HTML
    ?
  • 2 færre afhængigheder
    ?
  • Understøtter 1 tidligere versioner af Internet Explorer
    ?

    6vs7
  • Har dedikerede fejlfindingsværktøjer
    ?

Hvilke er de mest populære sammenligninger?

Generel info

Har automatisk visnings sortering
Backbone JS
Knockout JS
Har en mekanisme til at filtrere visninger baseret på anvendelses variabler (f. eks. når du søger) uden at skulle skrive meget ekstra kode.
Bruger en "templating engine"
Backbone JS
Knockout JS
"Template engines" tillader nem og fleksibel brugergrænseflade.
Understøtter beregnede egenskaber
Backbone JS
Knockout JS
Tillader brug af funktioner som egenskaber til at beregne egenskaber for objekter.
Bruger JSX til "templating"
Backbone JS
Knockout JS
JSX er en "templating engine", som gør det muligt for udvikleren at skrive markup direkte i deres kode, som derefter er live- eller præ-kompileret til almindeligt JavaScript. Dette eliminerer adskillelsen mellem visnings markup og kode og tilbyder forbedringer I hastighed i forholdt til string-baseret "templating" sprog.
Udvider HTML
Backbone JS
Knockout JS
Nogle ser dette som en fordel da det fjerner udgifterne til et andet skabelon sprog.
Udgivet under MIT licens
Backbone JS
Knockout JS
MIT licensen er en meget liberal licens, der tillader enhver brug, herunder erhvervsbrug, uden garanti.
Kan bruges til at erstatte en del af en anden konstruktion uden at fjerne de resterende funktioner.
Mulighed for at indsætte visnings skabeloner i top-niveau visning fra en skabelon.
Anvender et populært boilerplate-projekt
Backbone JS
Knockout JS
Anvender et officielt eller velkendt boilerplate-project, som bestemmer filstrukturen og lader udviklerne komme hurtigere igang.

Plug-ins

Har et plugin der indeholder faciliteter til nemt at oprette visning af animationer.
Plugins giver en nem måde at udvide funktionaliteten eller integrere med andre tjenester. Et højt antal plugins kan angive, at der er mange aktive brugere.
har en dedikeret plugin kilde.
Backbone JS
Knockout JS
Dette viser at konstruktionen har et levende økosystem, stor samfundsstøtte og tillader større fleksibilitet og hurtigere udvikling.
Plugin til at hjælpe med at validere klientens input inden det bliver forarbejdet eller sendt til en server. Dette erstatter ikke server-side validering men kan markant forbedre brugeroplevelsen.
Omfatter funktioner til at holde modellerne synkroniseret med deres server-side repræsentation, uden brug for at skrive jQuery boilerplate ajax kald.
Har et plugin til at holde modellerne synkroniseret med deres server-side repræsentation, uden brug for at skrive jQuery boilerplate ajax kald.
Understøtter animation
Backbone JS
Knockout JS
Indeholder faciliteter til nemt at oprette visning af animationer.
Har et plugin som giver en simpel funktion til at synkronisere modeller med HTML5 LocalStorage.

Programmer og pakker

Påkræver og anbefaler ikke brugen af et specifikt bibliotek(som jQuery, Zepto eller MooTools) til at håndtere DOM manipulation og kan bruges med det som foretrækkes af udvikleren.
Virker med AMD biblioteker som require.js
Backbone JS
Knockout JS
"Asynchronous Module Definition" tillader nem modulær og "ren" programmering. Hvis en konstruktion ikke fungerer ordentligt med denne slags biblioteker kan det have andre metoder til at modulere dets komponenter og løse afhængigheder, som for eksempel afhængigheds injektion.
Bower er en brugervenlig npm-agtig pakke manager til frontend applikationer.
Node pakke-manageren kan også bruges til at håndtere frontend scripts.
Inkluderer JQuery Lite
Backbone JS
Knockout JS
Anvender JQuery Lite elementer når DOM manipulering er nødvendig. På denne måde kan udviklere gøre brug af JQuery's solide hjælpefunktioner uden at være nød til at inkludere hele biblioteket. I mange tilfælde eliminerer dette projektets afhængighed af jQuery.
Inkluderer Underscore.js biblioteket
Backbone JS
Knockout JS
Anvender det populære værktøj underscore.js som en afhængighed. Undercore inkluderer hjælpefunktioner til liste manipulation og funktionel programmering.

Databinding

Har to-vejs databinding
Backbone JS
Knockout JS
Modeller og visninger kan være forpligtede til at opdatere hinanden.
Understøtter en-vejs databinding
Backbone JS
Knockout JS
Visninger kan være forpligtet til at opdatere automatisk når et objekt ændres.
Dette gør det nemmere at overføre data mellem applikationen og "REST-Services " eller "LocalStorage". Desuden reducerer det kompleksiteten fra "getter- og setter" funktioner.
Tillader brug af visningen "mixins"
Backbone JS
Knockout JS
Mixins er en programmerings metode, der muliggør at forskellige objekter kan dele "common behavior" uden brug af objektorienteret arv.
Kan udvides til at understøtte at modeller og visninger opdaterer hinanden. Dette øger filstørrelsen men giver større fleksibilitet.
Bruger "observables" til databinding
Backbone JS
Knockout JS
Modeller ses igennem for ændringer. Dette er et velkendt mønster. Kan i visse tilfælde give bedre ydelse end "dirty checking".
Anvender "Dirty Checking"
Backbone JS
Knockout JS
Kontrollerer for eventuelle ændringer og opdaterer de relevante områder. Kan i visse tilfælde give bedre ydelse end "observers".

Ydeevne

Mindre filstørrelse betyder hurtigere load tider.
Understøtter routing og deep linking
Backbone JS
Knockout JS
Routing kan interagere med browserens url-adresse. Dette er meget vigtigt for at have en god brugeroplevelse hvis du bygger enkelt-side applikationer.
Anvender "Promises"
Backbone JS
Knockout JS
Har intern implementation af Promises/A+ specifikationen. "Promises" er et populært alternativ til "callbacks" når det drejer sig om server svar.
Understøtter en "template engine" som kan pre-renderes på serveren. Dette kan eventuelt forbedre sidens hastighed, især på enheder med minimal computerkraft.
Kan renderes på serveren
Backbone JS
Knockout JS
Dette forbedrer i høj grad søgemaskinens evne til at indeksere siden. Dette kan eventuelt forbedre sidens hastighed, især på enheder med minimal computerkraft.
Har afhængigheds injektion
Backbone JS
Knockout JS
Dette forbedrer testmuligheder og modularitet.
Færre afhængigheder betyder at færre ekstra scripts skal inkluderes, som normalt resulterer i færre udviklingsomkostninger og hurtigere load tider.
Opdaterer DOM'en asynkront
Backbone JS
Knockout JS
Modellens ændringer vises ikke umiddelbart i visnings opdateringer, men er sat i kø og bliver afsendt som en gruppe. Dette kan være meget mere effektivt end øjeblikkelige visnings opdateringer.
Tillader brug af biblioteker som "JQuery Deferred" til at understøtte "Promises". "Promises" er et populært alternativ til "callbacks" når det drejer sig om server svar.

Hvilke er de bedste MV* frameworks?

Vis alt
This page is currently only available in English.