65points

CanJS

CanJS
vs

CanJS review: 21 facts and highlights

CanJS
CanJS

Why is CanJS better than the average?

  • Minified file size without dependencies
    69KBvs75.64KB
  • Versions of Internet Explorer supported
    7vs7.33

Key features and highlights

relevant

General info

1.Uses a templating engine
CanJS

Template engines allow for easy and flexible UI building.

2.Supports computed properties
CanJS

Allows the use of functions as properties to compute properties of objects.

3.Supports composed (partial) views
CanJS

Allows for nesting view templates into top-level views from within a template.

4.Published under MIT License
CanJS

The MIT License is a very permissive license which allows all uses, including business use, without warranty.

5.Has integrated input validation
CanJS

Built-in utilities to help validate client input before it gets processed or sent to a server. While this does not replace server-side validation, it can vastly improve the user experience.

6.versions of Internet Explorer supported

7

Legacy browser support can be important for corporate projects and projects with a large user base consisting of Internet Explorer users.

Best

rAppid JS

0

relevant

Plugins

1.number of plugins

7

Plugins offer an easy way to extend the functionality or integrate with other services. A high number of plugins may indicate an active community of users. Only official plugins are taken into account.

Best

AngularJS

213

2.has a dedicated plugin source.
CanJS

This shows that the framework has a living ecosystem, large community support and allows for more flexibility and faster development.

3.Built-in RESTful sync abstraction for models
CanJS

Includes utilities to keep models in sync with their server-side representation without the need of writing jQuery boilerplate ajax calls.

relevant

Libraries & Packages

1.Is DOM manipulation library agnostic
CanJS

Does not require or seriously encourage the use of a specific library (like jQuery, Zepto or MooTools) to handle DOM manipulation and can be used with one the developer prefers.

2.Officially supports Bower dependency management
CanJS

Bower is an easy-to-use, npm-like package manager for frontend applications.

3.Works with AMD libraries such as require.js
CanJS

Asynchronous Module Definition libraries allow for easy modular, clean programming. If a framework does not work well with such libraries, it might have some other means to modularize its components and resolve dependencies, like Dependency Injection.

relevant

Data binding

1.Supports one-way data binding
CanJS

Views can be bound to update automatically when an observable object changes.

2.Uses observables for data binding
CanJS

Models are observed for changes. This is a well known pattern. Can be more performant than dirty-checking in some cases.

relevant

Performance

1.Supports routing and deep linking
CanJS

Routing allows interaction with the browser url. This is very important for a good user experience if you are building one-page apps.

2.Uses Promises
CanJS

Has an internal implementation of the Promises/A+ specification. Promises are a popular alternative to callbacks when dealing with server responses.

3.minified file size without dependencies

69KB

Smaller file size means faster load times.

Best

Flight

14KB

4.Templates can be pre-compiled on the server
CanJS

Supports a template engine that can be pre-rendered on the server. This possibly improves page speed, especially on devices with low computing power.

5.dependencies

1

Less dependencies means less extra scripts to include, usually resulting in less development overhead and faster load times.

Best

SproutCore

0

Top 10 MV* frameworks

Add to comparison
    This page is currently only available in English.