На JavaScript написано безліч програмних каркасів. Мета цього порівняння — показати приклади фреймворків і порівняти основні з них.
Загальна інформація Фреймворк Версія Розмір Ліцензія МоваAmple SDK 0.9.3 вар'юється. (мініфіковано) + gzip-стиснення) AngularJS 1.5.0 (мініфіковано + стиснено) JavaScriptBackbone.js 1.2.1 (запаковано + gzip-стиснення) JavaScriptDHTMLX 4.0 вар'юється GPL + Commercial JavaScriptDojo 1.10.4 вар'юється. (мініфіковано + gzip-стиснення), (мініфіковано), (без компресії) JavaScript + HTMLEcho3 3.0.rc1 JavaScript та/або JavaEmber.js 1.7.0 (мініфіковано + gzip-стиснення), (мініфіковано), (без компресії) JavaScriptEnyo 2.0.1 (gzip-стиснення) JavaScriptExt JS 4.2 GPL + Commercial JavaScriptGoogle Web Toolkit 2.7.0 вар'юється JavajQuery (library) 1.9.1 (мініфіковано + gzip-стиснення), (мініфіковано), (без компресії) JavaScriptjQWidgets 3.9.1 (мініфіковано), (без компресії) Creative Commons NonCommercial та Commercial JavaScript, HTML, CSSKendo UI 2014.1.416 вар'юється JavaScriptKnockout 3.4.0 58 KB мініфіковано / 280 KB (development mode) невідомоmidori (покинуто) 2010.05 (мініфіковано + gzip-стиснення), (без компресії) MochiKit (покинуто) 1.4.2 — не розробляється MooTools 1.6.0 вар'юється; , вар'юється; , (без компресії) JavaScriptSAP OpenUI5 1.26.6 20.8MB (1.34.7 runtime, мініфіковано, zip)6.8MB (1.34.7 runtime mobile, мініфіковано, zip)52.1MB (1.34.7 SDK, zip) https://github.com/SAP/openui5/ OpenUI5 on GitHub JavaScriptPrototype + script. aculo.usscript.aculo.us is an add-on to Prototype. Prototype: 1.7.3 script.aculo.us: 1.9.0 JavaScriptPyjamas 8.0 вар'юється Pythonqooxdoo 5.0.1 вар'юється, поч. з (gzip-стиснення) JavaScriptRialto Toolkit (покинуто) 1.1.5 Rico (покинуто) 2.0 SmartClient + SmartGWT SmartClient: 10.0 SmartGWT: 5.0 (gzip-стиснення). LGPL + Commercial Сервер: Java Клієнт: Java (Smart GWT) або Javascript (SmartClient) або XML (обидва)SproutCore 1.11.2 (gzip-стиснення). JavaScriptSyncfusion 14.1.0.41 (мініфіковано + gzip-стиснення), (без компресії). JavaScript, HTML, CSSUnified.js 14.0 вар'юється, 871 KiB (мініфіковано + gzip-стиснення) BSD(component only) + Commercial JavaScriptWakanda 9 вар'юється GPL3 (framework), AGPL (server) + Commercial JavaScript + HTML + CSSWebix 2.2 (gzip-стиснення) GPL + Commercial JavaScriptWijmo 5.20153.117 Core: 20 kB (мініфіковано + gzip-стиснення)Всього: 117 kB (мініфіковано + gzip-стиснення) CommercialTypeScriptYUI (покинуто) 3.18.1 вар'юється; core JavaScript + HTML + CSSZino UI 1.5 вар'юється GPL + Commercial JavaScriptZK 8.0.1 вар'юється LGPL + GPL + ZOL XML + Java (JavaScript необов'язково)
Особливості vAccDCAmple SDKAngularJSAtoms.jsDHTMLXDojoEcho3Ember.jsEnyoExt JSGoogle Web ToolkitjQueryjQWidgetsKendo UImidoriMochiKitMooToolsOpenUI5Prototype + script. aculo.usPyjamasqooxdooRialto ToolkitRicoSmartClient + SmartGWTSproutCoreSyncfusionUnified.jsWakandaWijmoYUIZino UIZKWebix Знаходження функціїFeature detection is preferred by many to browser sniffing to support future browsers: Browser Detecting (and what to do Instead) , Feature Detection: State of the Art Browser Scripting, Browser Feature Detection Ample SDK uses Browser Sniffing http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.supports GWT implementations for every browserGoogle Docs (built on GWT) stops working on a Firefox rebranding because of not doing proper Feature Detection jQuery 1.3 http://docs.telerik.com/kendo-ui/api/javascript/kendo#fields-support http://www.midorijs.com/midori.js midori.js http://www.mochikit.com/MochiKit/Style.js MochiKit/Style.js http://mootools.net/blog/2010/10/11/mootools-core-1-3-stable-and-mootools-more-1-3rc/ https://svn.improve.fr/rialto/Rialto-coreV1/rialtoEngine/javascript/rialto.js Author disagrees that feature detection alone is sufficient Partial Yes http://zssdemo.zkoss.org/zkau/web/js/zk/zk.js.dsp zk.js «Обгортання» DOM MooTools Docs — Element/Element Prototype JavaScript framework: ElementPrototype 2.0 will not extend the DOM — Ajaxian Обмін даними через XMLHttpRequest MooTools Request WebSocket Server push data retrieval https://github.com/kembuco/extjs-cometd/ https://code.google.com/p/rocket-gwt/wiki/Comet Real-time Messaging Module support only the nexacro browser currently http://books.zkoss.org/wiki/ZK_Developer's_Reference/Server_Push Other data retrieval Drag and drop https://code.google.com/p/gwt-dnd/ MooTools Drag.Move Accordion drag + drop Прості візуальні ефекти MooTools Fx.Tween (Simple Transitions) http://showcase.sproutcore.com/#demos/Transition%20Plugins Анімація / складні віз. ефекти Mochikit.Visual MooTools Fx.Morph (Advanced Transitions) ПІдтримка кнопки «назад» / керування історією http://www.sencha.com/products/js/roadmap.php Since v2.2 Address, History , jquery History , History/Remote , jQuery BBQ http://docs.telerik.com/kendo-ui/api/javascript/router#configuration-pushState MooTools-History Отримання даних з віджетів і валідація dhtmlxForm , валідація вимагає плагіна http://plugins.jquery.com AccDCAmple SDKAngularJSAtoms.jsDHTMLXDojoEcho3Ember.jsEnyoExtJSGoogle Web ToolkitjQueryjQWidgetsKendo UImidoriMochiKitMooToolsOpenUI5Prototype + script. aculo.usPyjamasqooxdooRialto ToolkitRicoSmartClient + SmartGWTSproutCoreSyncfusionUnified.jsWakandaWijmoYUIZino UIZKWebix Сітка (grid) Data Grid dhtmlxGrid jqGrid, Ingrid , Flexigrid, SlickGrid, ParamQuery Grid, ShieldUI jQuery Grid JxLib Library or phatfusion sortable table plugin or DrasticGrid Деревоподібна структура dhtmlxTree Tree demo treeview , file_tree_viewer MooTree 2 or JxLib Library or MooTools PowerTools! http://pyjs.org/examples/kitchensink/output/KitchenSink.html#Trees Tree http://demo.qooxdoo.org/current/demobrowser/ Demo browser (Auto Form) Візуальний редактор dhtmlxEditor problems with the HTMLEditor creating XHTML vs the HTML it does now markitup , jwysiwyg, htmlbox , WYMeditor Автозавершення dhtmlxCombo http://jqueryui.com/autocomplete/ Генерація HTML As of Dojo 1.3, the NodeList.addContent() api can be used to create content for example: dojo.query(«.note»).addContent(«h4 NOTE: h4», «before»); Шаблони оформлення для віджетів SkinBuilder Community-driven skins, Theme Builder ThemeRoller Wakanda Widget Overview (skins / styles) Зміна розмірів для панелей і модальних вікон dhtmlxWindows Using MochaUI Library or JxLib GUI page layout dhtmlxLayout Bootstrap integration Підтримка Canvas jQuery Canvas plugin MochaUI Library Підтримка смартфонів/планшетів (натискання) dojox.mobile + dojox.mobile.app jQTouch, jQuery Mobile Project MooTools Mobile (unofficial) http://www.zkoss.org/whyzk/Features Доступність / graceful degradationAll JavaScript frameworks can be written in an accessible way with graceful degradation, frameworks seen here which imply out-of-the-box accessibility have made a special effort to document best practices for their particular framework. Built-in Accessibility in GWT 1.5 Applications ARIA compliant jQuery UI has ARIA support Інструменти розробника Visual Designer for DHTMLX WavemakerAptana Studio Theme BuilderCustom build tool jQuery API Custom build tool Робота офлайнJavaScript frameworks currently only have the ability to support offline storage by taking advantage of pre-installed browser extensions such as Google Gears. If a user does not have one of these supported extensions installed in their browser already then offline support will be unavailable to the framework. JavaScript framework developers interested in implementing Gears may want to start with the Gears Getting Started Guide. o.DojoToolkit.Org/offline says «Dojo Offline is no longer supported after Dojo 1.3» http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.data.proxy.WebStorage Google API Libraries for Google Web Toolkit Pyjamas Desktop planned Крос-браузерна 2d векторна графікаSome JavaScript libraries provide 2d graphics primitives that can be used for cross-browser vector graphics. These libraries rely on underlying technologies in the browser or plugins such as Canvas, SVG, VML, Flash, and Silverlight to do the actual rendering, but help isolate application and widget code from the rendering engine API differences http://keith-wood.name/svg.html jQuery SVG plugin MooTools ART ] (з доп. Raphael) http://books.zkoss.org/wiki/Small_Talks/2010/June/How_To_Use_Canvas4Z Чарти і панель керуванняДеякі бібліотеки містять віджети для чартів, графіків тощо. dhtmlxChart http://dev.sencha.com/deploy/dev/docs/?class=Ext.chart.Chart Chart API jQuery Flot Plugin , Webix Charts Підтримка тексту справа наліво
Підтримка браузерів ФреймворкInternet ExplorerMozilla FirefoxSafariOperaChromeAccDC 6+ 2+ 3+ 9+ 1+Ample SDK 6+ 1+ 3+ 9.6+ 1+AngularJS (1.3) 8+ (9+) 4+ 5+ 11+ 30+Atoms.js 8+ 4+ 4+ 11+ 10+DHTMLX 6+ 1+ 2.0+ 9+ 1+Dojo 6+ 3+ 4 10.50+ 3Echo3 6+ 1.5+ 3+ 9+ 1+Ember.js 6+ 3+ 4+ 10.6+ 14+Enyo 8+ >4 >5 >10Ext JS 6+ 3.6+ 4+ 11+ 10+http://www.sencha.com/products/js/Google Web Toolkit 8+ 1+ 5+ 9+ 1+jQuery 6+http://docs.jquery.com/Browser_Compatibility 2+ 3+ 9+ 1+jQWidgets 7+ 2+ 3+ 9+ 1+Kendo UI 7+ ESR 5+ (OSX) 15+ Yeshttp://docs.telerik.com/kendo-ui/browsers-supportmidori 6+ 1.5+ 2+ 9+MochiKit 6 1.0.7, 1.5b2 2.0.2 8.5MooTools 6+ 2+ 3+ 9+ 1+Prototype + script. aculo.us 6+ 1.5+ 2.0.4+ 9.25+ 1+ (поч. з 1.6.1RC3)Pyjamas 6+ 1+ 2+ 9+qooxdoo 6+ 2+ 3+ 9+ 2+Rialto Toolkit 6+ 1.5+ 9+Rico 5.5+ 1+ 2.0.3SmartClient and SmartGWT 6+ 1+ 3+ 9+ 1+SproutCore 6+ 3+ 4+ 9+ 1+Syncfusion 8+ 22+ 5+ 12+ 17+Unified.js 8+ 4+ 5+ 11+ 30+Wakanda 9+ 4+ 5+ 11+Wijmo 9+ 4+ 5+11+ 30+YUI 6+ 3+ 4.0 10.0+Zino UI 8+ 4+ 5+ 11+ 12+ZK 6+ 2.0+ 3+ 9+ 2+Webix 8+ 3+ 4+ 9+ 1+
Див. також Список JavaScript бібліотек Ajax framework
Примітки