(Translated by https://www.hiragana.jp/)
Comparison of JavaScript-based web frameworks - Wikipedia Jump to content

Comparison of JavaScript-based web frameworks

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 199.88.143.1 (talk) at 15:25, 23 August 2013 (Updated ExtJS supported browser versions for Ext 4). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

There are many JavaScript frameworks available. The intention of this comparison is to show some examples of notable JavaScript frameworks.

Comparison of JavaScript frameworks

AccDC Ample SDK CupQ DHTMLX Dojo Echo3 Enyo Ext JS Google Web Toolkit jQuery midori MochiKit MooTools PhoneJS Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient & SmartGWT Wakanda YUI ZK Webix Web Atoms JS
Version compared 2.0.2
December 2012
0.9.3
1 Jul 2010
0.2
June 2012
3.6
18 Apr 2013
1.9.1
14 June 2013
3.0.rc1
24 Mar 2011
2.0.1
30 August 2012
4.2
13 Mar 2013
2.4
September 2011
1.9.1
4 Feb 2013
2010.05
10 May 2010
1.4.2
17 Nov 2008
1.4.5
26 February 2012
13.1.4
6 June 2013
Prototype: 1.7.1
8 Aug 2012
script.aculo.us: 1.9.0
23 Dec 2010
0.5
Mar 2009
3.0
22 Jul 2013
1.1.5
25 Feb 2011
2.0
3 May 2009
SmartClient: 9.0
Jul 2013
SmartGWT: 4.0
Jul 2013
3
19 Dec 2012
3.10.0
23 Apr 2013
6.5.1.1
13 Dec 2012 / 12 September 2012;
1
11 July 2013
1.0.8
1 August 2013
Size Variable.
Core size:
40 kB (minified & gzipped)
20 kB (minified) Variable Variable.
Base size:
41 kB (minified & gzipped),
155 kB (minified),
598 kB (uncompressed)[2]
<25 kB (core gzipped) 84–502 kB Variable 32 KiB (minified & gzipped),
93 KiB (minified),
252 KiB (uncompressed)
9 kB (minified & gzipped),
50 kB (uncompressed)
32–200 kB Variable;
7.3–65 KiB (YUI Compressor),[3]
101 KiB (uncompressed)[4]
236 kB 46–278 kB Variable Variable, starting at 6 kB (gzipped) 520 kB 100–500 kb (gzipped). Variable Variable; library core is 31 kB Variable 110kB(gzipped) 44kB(gzipped)
License MIT License MIT & GPL MIT GPL and Commercial BSD & AFL MPL, LGPL or GPL Apache 2 [13] GPL and Commercial Apache MIT MIT MIT & AFL MIT DEVEXPRESS EULA MIT Apache 2 & GPL LGPL & EPL Apache Apache LGPL & Commercial GPL & Commercial BSD LGPL & GPL & ZOL GPL & Commercial Commercial
Source language JavaScript ? JavaScript JavaScript JavaScript + HTML JavaScript and/or Java JavaScript JavaScript Java JavaScript ? ? JavaScript JavaScript + HTML5 + CSS3 JavaScript Python JavaScript ? ? Server: Java
Client: Java (Smart GWT) or Javascript (SmartClient) or XML (both)
Javascript + HTML + CSS Javascript + HTML + CSS XML + Java (Javascript Optional) JavaScript JavaScript
Features
AccDC Ample SDK CupQ DHTMLX Dojo Echo3 Enyo Ext JS Google Web Toolkit jQuery midori MochiKit MooTools PhoneJS Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT Wakanda YUI ZK Webix Web Atoms JS
Feature detection[5] Yes No[6] Yes[7] No Yes[8] No No No[9][10] Yes[11] No[12] No[13] Yes[14] Yes No[15] Yes No[16] No Partial [17] Partial Yes No[18] Yes Yes
DOM wrapped[19] Yes Yes[20] Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No[21] Yes No[22][23] Yes Yes Yes No Yes Yes Yes Yes Yes Yes
XMLHttpRequest
data retrieval
Yes Yes No Yes Yes[24] Yes Yes Yes Yes Yes Yes Yes[25] Yes Yes Yes Yes No Yes[26] Yes Yes Yes Yes Yes
JSON data retrieval Yes Yes No Yes Yes[27] Yes Yes Yes Yes Yes Yes Yes[28] Yes Yes Yes[29] Yes No Yes Yes Yes Yes Yes Yes
Server push data retrieval Yes Yes[30] Yes[31] Yes[32] Yes[33] Yes Yes[34] Via Plugin Yes[35]
Other data retrieval Yes: XML, HTML Yes: XML Yes: XML, CSV, HTML Yes: XML, HTML, CSV, ATOM[36] Yes: XML Yes: RPC, RequestFactory Yes: XML, HTML Yes: XML, HTML Yes: XML, HTML, OData, REST Yes: XML, WSDL, RSS, and Java-based SQL, Hibernate, POJO adapters Yes: JSON-RPC, Wakanda REST Yes Yes: XML, HTML,CSV Yes: XML, HTML,CSV
Drag and drop Yes: With keyboard accessibility Yes No Yes Yes[37] Yes Yes With plugin[38] Yes Yes Yes Yes[39] Yes Yes Depends Yes Yes Yes Yes Yes Yes Yes Yes
Simple visual effects Yes Yes No Yes Yes[40] Yes Yes Yes Yes Yes Yes Yes[41] Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes
Animation /
advanced visual effects
Yes No No Yes[42] Yes Yes[43] Yes Yes Yes Yes Yes[44] Yes[45] Yes Yes Yes No Yes Yes Yes Yes Yes Yes
Event handling Yes Yes[46] Yes Yes Yes[47] Yes Yes Yes Yes Yes Yes Yes[48] Yes Yes Yes[49] Yes Yes Yes Yes Yes Yes Yes Yes Yes
Back button support /
history management
Yes No No Yes[50] Yes[51] Yes With plugins[52] Yes With plugin[53] Yes Yes Yes[54] Yes No Yes Yes Yes Yes Yes Yes
Input form widgets & validation Yes No Yes[55] Yes[56] Yes Yes Yes Yes, Validation requires plugin[57] With plugins[58] Yes Yes Yes Yes Yes[54] Yes Yes Yes Yes Yes Yes Yes Yes Yes
AccDC Ample SDK CupQ DHTMLX Dojo Echo3 Enyo ExtJS Google Web Toolkit jQuery midori MochiKit MooTools PhoneJS Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT Wakanda YUI ZK Webix Web Atoms JS
Grid Yes[59] No Yes[60] Yes[61] Yes Yes Yes With plugins[62] No With plugin[63] With plugins Yes Yes Yes Yes[64] Yes Yes[65] Yes[66] Yes Yes Template
Hierarchical Tree Yes Yes[67] Yes Yes[68] Yes[69] Yes[70] Yes[71] Yes With plugins[72] No With plugins[73] No Yes[74] Yes[75] Yes Yes Yes (Auto Form)[76] Yes[77] Yes Yes Yes
Rich text editor Yes[78] No Yes[79] Yes[80] Yes[81] Yes[82] Yes With plugins[83] No Yes[84] No Yes Yes No No Yes Yes[85] Yes Yes With plugins Yes
Autocompletion tools No Yes[86] Yes[87] Yes Yes With plugins[88] Yes With plugin[89] Yes Yes Yes Yes Yes Yes Yes[90] Yes Yes Yes Yes
HTML generation tools Yes Yes Yes Yes Yes[91] Yes Yes Yes No Yes[92] With plugins Yes Yes Yes Yes Yes Yes No Yes Yes Yes Yes
Widgets themeable / skinnable Yes Yes Yes[93] Yes[94] Yes Yes[95] Yes[96] Yes[97] Yes Yes Yes Yes[98] Yes Yes[99] Yes[100] Yes Yes Yes
GUI resizable panels and modal dialogs Yes Yes Yes[101] Yes Yes Yes Yes With plugins Yes[102] Partial Yes Yes Yes[103] Yes Yes[104] Yes Yes
GUI page layout Yes Yes Yes[105] Yes Yes Yes With plugin[106] Yes[102] Yes Yes Yes Yes[107] Yes Yes[108] Yes Yes
Canvas support Yes Yes Yes[109] Yes Yes Yes With plugin[110] Yes[111] No Yes Yes Yes Yes[112] Yes Yes[113] Yes
Mobile/tablet support (touch events) Yes Yes Yes Yes[114] Yes[115] No Yes Yes With plugin[116] With plugin[117] With plugin[118] Yes Yes Yes Yes[119][120] Yes Yes[121] Yes Yes
Accessibility /
graceful degradation[122]
Yes No Yes No Yes[123] Yes Partial[124] Yes[125] Yes Yes Yes No[126] Degradation: No
Accessibility: Yes
Yes[127] Yes No No
ARIA compliant Yes No Yes[123] No Yes[128] No No Yes Yes Yes No No
Developer tools, Visual design Yes No No Yes[129] Yes[130] In development[131] in progress[132] Yes[133] Yes Yes[134][135] Yes[136][137] With plugins No Yes[138] Yes Yes[139] Yes[140] Yes In development Visual Studio
Offline storage[141] No Yes[142] No[143] Yes Via Adobe Air Via Google Gears[144] With plugin[145] No Yes Via Pyjamas-Desktop[146] Yes No Yes planned Via plugin[147] Yes Yes Yes
Cross-browser 2d Vector Graphics[148] Yes[149] Yes[150] Yes With plugin[151] Yes[152] With plugins Yes Yes Yes (via Raphael) Yes Yes[153] No With plugins
Charting & Dashboard[154] Yes[155] Yes[156] Yes[157] Yes[158] With plugin[159][160] With plugins Yes Yes[161] Yes[162] Yes[163] Yes[164]
RTL Support in UI Components Yes Yes Yes Depends on the plugin used No Yes No Yes
AccDC Ample SDK CupQ DHTMLX Dojo Echo3 Enyo Ext JS Google Web Toolkit jQuery midori MochiKit MooTools PhoneJS Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT Wakanda YUI ZK Webix Web Atoms JS
Browser Support
Internet Explorer 6+ 6+ 6+ 6+ 6+ 6+ 8+[165] 6+ 6+ 6+[166] 6+ 6 6+ 9+ 6+ 6+ 6+ 6+ 5.5+ 6+ 9+ 6+ 6+ 8+ 8+
Mozilla Firefox 2+ 1+ 2+ 1+ 3+[167] 1.5+ >4[165] 3.6+ 1+ 2+[166] 1.5+ 1.0.7, 1.5b2 2+ 17+ 1.5+ 1+ 2+ 1.5+ 1+ 1+ 4+ 3+[168] 2.0+ 3+ 4+
Safari 3+ 3+ 3+ 2.0+ 4[167] 3+ >5[165] 4+ 3+ 3+[166] 2+ 2.0.2 3+ 5+ 2.0.4+ 2+ 3+ 2.0.3[169] 3+ 5+ 4.0 3+ 4+ 4+
Opera 9+ 9.6+ 9+ 9+ 10.50+[167] 9+ [165] 11+ 9+ 9+[166] 9+ 8.5 9+ 11+ 9.25+ 9+ 9+ 9+ 9+ 10.0+ 9+ 9+ 9+
Chrome 1+ 1+ 1+ 1+ 3[167] 1+ >10[165] 10+[170] 1+ 1+[166] 1+ 22+ 1+ (starting with 1.6.1RC3) 2+ 1+ 11+ 2+ 1+ 10+

See also

Notes

  1. ^ a b c d script.aculo.us is an add-on to Prototype.
  2. ^ Dojo Base
  3. ^ [1]
  4. ^ [2]
  5. ^ 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
  6. ^ Ample SDK uses Browser Sniffing
  7. ^ [CupQ uses Browser Sniffing]
  8. ^ Documentation dojo/has
  9. ^ GWT implementations for every browser
  10. ^ Google Docs (built on GWT) stops working on a Firefox rebranding because of not doing proper Feature Detection
  11. ^ jQuery 1.3
  12. ^ http://www.midorijs.com/midori.js midori.js
  13. ^ http://www.mochikit.com/MochiKit/Style.js MochiKit/Style.js
  14. ^ http://mootools.net/blog/2010/10/11/mootools-core-1-3-stable-and-mootools-more-1-3rc/
  15. ^ Feature detection all the way
  16. ^ https://svn.improve.fr/rialto/Rialto-coreV1/rialtoEngine/javascript/rialto.js
  17. ^ Author disagrees that feature detection alone is sufficient
  18. ^ http://zssdemo.zkoss.org/zkau/web/js/zk/zk.js.dsp zk.js
  19. ^ kangax (5 April 2010). "What's wrong with extending the DOM". Retrieved 6 April 2010.
  20. ^ http://www.amplesdk.com/about/technologies/javascript/
  21. ^ MooTools Docs - Element/Element
  22. ^ Prototype JavaScript framework: Element
  23. ^ Prototype 2.0 will not extend the DOM - Ajaxian
  24. ^ AJAX and Dojo
  25. ^ MooTools Request
  26. ^ Inner HTML demo
  27. ^ http://docs.dojocampus.org/dojo/data
  28. ^ MooTools Request.JSON
  29. ^ Pyjamas JSON-RPC Example
  30. ^ http://cometd.org/documentation/cometd-javascript
  31. ^ https://github.com/kembuco/extjs-cometd/
  32. ^ http://code.google.com/p/rocket-gwt/wiki/Comet
  33. ^ http://cometd.org/documentation/cometd-javascript
  34. ^ Real-time Messaging Module
  35. ^ http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/Server_Push
  36. ^ http://docs.dojocampus.org/dojox/data
  37. ^ http://docs.dojocampus.org/dojo/dnd
  38. ^ http://code.google.com/p/gwt-dnd/
  39. ^ MooTools Drag.Move
  40. ^ http://docs.dojocampus.org/dojo/fx/
  41. ^ MooTools Fx.Tween (Simple Transitions)
  42. ^ http://docs.dojocampus.org/dojox/fx/
  43. ^ http://enyojs.com/api/#enyo.Animator
  44. ^ Mochikit.Visual
  45. ^ MooTools Fx.Morph (Advanced Transitions)
  46. ^ http://www.amplesdk.com/about/technologies/javascript/
  47. ^ http://docs.dojocampus.org/quickstart/events
  48. ^ http://mootools.net/docs/core/Types/Event MooTools Events
  49. ^ Pyjamas demo of onclick event handling
  50. ^ http://docs.dojocampus.org/dojo/back
  51. ^ http://www.sencha.com/products/js/roadmap.php Since v2.2
  52. ^ Address, History, jquery History, History/Remote, jQuery BBQ
  53. ^ MooTools-History
  54. ^ a b Pyjamas Kitchen Sink demo
  55. ^ dhtmlxForm
  56. ^ http://docs.dojocampus.org/dijit/form
  57. ^ http://techblog.maydu.eu/?p=7
  58. ^ http://plugins.jquery.com
  59. ^ Data Views
  60. ^ dhtmlxGrid
  61. ^ http://docs.dojocampus.org/dojox/grid
  62. ^ jqGrid, Ingrid, Flexigrid, SlickGrid, ParamQuery Grid
  63. ^ JxLib Library or phatfusion sortable table plugin or DrasticGrid
  64. ^ Live grid
  65. ^ Wakanda DataGrid
  66. ^ YUI DataTable
  67. ^ Data Views
  68. ^ dhtmlxTree
  69. ^ http://docs.dojocampus.org/dijit/Tree
  70. ^ Tree demo
  71. ^ Tree demos
  72. ^ treeview, file_tree_viewer
  73. ^ MooTree 2 or JxLib Library or MooTools PowerTools!
  74. ^ http://pyjs.org/examples/kitchensink/output/KitchenSink.html#Trees Tree
  75. ^ http://demo.qooxdoo.org/current/demobrowser/ Demo browser
  76. ^ Wakanda Auto Form
  77. ^ http://developer.yahoo.com/yui/treeview/ YUI TreeView
  78. ^ [3]
  79. ^ dhtmlxEditor
  80. ^ http://docs.dojocampus.org/dijit/Editor
  81. ^ Echo 3 new features
  82. ^ problems with the HTMLEditor creating XHTML vs the HTML it does now
  83. ^ markitup, jwysiwyg, htmlbox, WYMeditor
  84. ^ MooEditable
  85. ^ Wakanda WYSIWYG Editor
  86. ^ dhtmlxCombo
  87. ^ http://docs.dojocampus.org/dijit/form/ComboBox
  88. ^ Autocomplete, Dylans Autocomplete, Yet Another Autocomplete, jQuery plugin for Autocomplete, Jquery Autocomplete, jquery.suggest, Interface Autocompleter
  89. ^ Digitarald's Autocompleter Plugin
  90. ^ Wakanda Combo Box
  91. ^ 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");
  92. ^ MooTools Elements
  93. ^ SkinBuilder
  94. ^ http://docs.dojocampus.org/dijit-themes
  95. ^ Community-driven skins, Theme Builder
  96. ^ Skinning GWT controls with style sheets
  97. ^ ThemeRoller
  98. ^ http://manual.qooxdoo.org/current/pages/gui_toolkit.html#themes
  99. ^ Wakanda Widget Overview (skins / styles)
  100. ^ Skinning YUI
  101. ^ dhtmlxWindows
  102. ^ a b Using MochaUI Library or JxLib
  103. ^ Wakanda Dialogs
  104. ^ http://www.zkoss.org/smalltalks/zkstudio_vedemo/
  105. ^ dhtmlxLayout
  106. ^ [4]
  107. ^ Wakanda Container / Layout
  108. ^ http://www.zkoss.org/smalltalks/zkstudio_vedemo/
  109. ^ dojo.gfx
  110. ^ jQuery Canvas plugin
  111. ^ MochaUI Library
  112. ^ Wakanda Canvas
  113. ^ [5]
  114. ^ DHTMLX Touch
  115. ^ dojox.mobile & dojox.mobile.app
  116. ^ [6]
  117. ^ jQTouch, jQuery Mobile Project
  118. ^ MooTools Mobile (unofficial)
  119. ^ Wakanda Navigation View
  120. ^ Wakanda Split View
  121. ^ http://www.zkoss.org/whyzk/Features
  122. ^ All 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.
  123. ^ a b http://docs.dojocampus.org/quickstart/writingWidgets/a11y
  124. ^ Section 508 accessibility improvements – v3.0 roadmap
  125. ^ Built-in Accessibility in GWT 1.5 Applications
  126. ^ Qooxdoo's "Extreme JavaScript" paradigm
  127. ^ Yahoo! UI Graded Browser Support
  128. ^ jQuery UI has ARIA support
  129. ^ Visual Designer for DHTMLX
  130. ^ Wavemaker, Aptana Studio
  131. ^ EchoStudio 3
  132. ^ [7]
  133. ^ [8], Theme Builder, Custom build tool
  134. ^ Netbeans has jQuery support
  135. ^ jQuery API
  136. ^ MooTools-core Documentation
  137. ^ MooTools-more Document
  138. ^ Custom build, JS Linker, API generation, Unit test framework, etc.
  139. ^ Wakanda Studio
  140. ^ CSS Grid Builder, YUI Test Utility, Profiler, Logger Control
  141. ^ 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.
  142. ^ Tutorial - How to Add Offline Support
  143. ^ o.DojoToolkit.Org/offline says "Dojo Offline is no longer supported after Dojo 1.3"
  144. ^ Google API Libraries for Google Web Toolkit
  145. ^ jQuery HTML5 Storage plugin
  146. ^ Pyjamas Desktop
  147. ^ http://yuilibrary.com/gallery/show/storage-lite
  148. ^ 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
  149. ^ [9]
  150. ^ http://docs.dojocampus.org/dojox/gfx
  151. ^ http://keith-wood.name/svg.html jQuery SVG plugin
  152. ^ MooTools ART
  153. ^ http://books.zkoss.org/wiki/Small_Talks/2010/June/How_To_Use_Canvas4Z
  154. ^ Some JavaScript libraries include widgets for Charts, Gauges, and other data visualizations.
  155. ^ [10]
  156. ^ dhtmlxChart
  157. ^ http://docs.dojocampus.org/dojox/charting
  158. ^ http://dev.sencha.com/deploy/dev/docs/?class=Ext.chart.Chart Chart API
  159. ^ jQuery Flot Plugin
  160. ^ jQuery Visualize Plugin
  161. ^ Wakanda Chart
  162. ^ [11]
  163. ^ [12]
  164. ^ Webix Charts
  165. ^ a b c d e http://enyojs.com/docs/platforms
  166. ^ a b c d e http://docs.jquery.com/Browser_Compatibility
  167. ^ a b c d http://docs.dojocampus.org/releasenotes/1.4
  168. ^ http://developer.yahoo.com/yui/articles/gbs/
  169. ^ http://openrico.org/resources
  170. ^ http://www.sencha.com/products/js/