Comparison of JavaScript frameworks

Comparison of JavaScript frameworks

Contents

Comparison of JavaScript frameworks

Rationale

There are many JavaScript frameworks available. The intention of this comparison is to show some examples of JavaScript frameworks with their different features.

Table of Javascript Frameworks

Ample SDK DHTMLX Dojo Echo3 Ext JS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient & SmartGWT SweetDEV RIA YUI ZK
Version compared 0.9.3
1 Jul 2010
3.0
7 Jul 2011
1.6.0
15 Mar 2011
3.0.rc1
24 Mar 2011
4
26 Apr 2011
2.4
September 2011
1.6
3 May 2011
2010.05
10 May 2010
1.4.2
17 Nov 2008
1.4.1
24 Feb 2011
1.6.1/1.8.3
14 Nov 2009
0.5
Mar 2009
1.5
13 Jul 2011
1.1.5
25 Feb 2011
2.0
03 May 2009
SmartClient: 8.1
Aug 2011
SmartGWT: 2.5
Aug 2011
3.1
9 Jun 2008
3.4
18 Aug 2011
5.0.9
18 Oct 2011
Size Variable.
Core size:
40 kB (minified & gzipped)
Variable Variable.
Base size:
28 kB (minified & gzipped),
65 kB (minified),
123 kB (uncompressed)[2]
84–502 kB Variable 31 KiB (minified & gzipped),
72 KiB (minified),
229 KiB (uncompressed)
9 kB (minified & gzipped),
50 kB (uncompressed)
32–200 kB Variable;
7.3–65 KiB (YUI Compressor),[3]
101 KiB (uncompressed)[4]
46–278 kB Variable Variable, starting at 6 kB (gzipped) 520 kB 100–500 kb (gzipped). 550 kB Variable; library core is 31 kB Variable
License MIT & GPL GPL & Commercial BSD & AFL MPL, LGPL or GPL GPL and Commercial Apache MIT & GPL MIT MIT & AFL MIT MIT Apache 2 & GPL LGPL & EPL Apache Apache LGPL & Commercial Apache 2 BSD LGPL & GPL & ZOL
Source language  ? JavaScript JavaScript + HTML JavaScript and/or Java JavaScript Java JavaScript  ?  ? JavaScript JavaScript Python JavaScript  ?  ? Server: Java
Client: Java (Smart GWT) or Javascript (SmartClient) or XML (both)
 ? Javascript + HTML + CSS XML + Java (Javascript Optional)
Demo XUL SVG Samples Explorer

Demo Apps

Feature Explorer Client-Side JavaScript Demo Samples & Demos GWT Examples UI demo midori Documen­tation Effects Demos Demos Effects Demos and Example Game pyjs.org examples qooxdoo demo Demos Demos SmartClient Showcase
SmartGWT Showcase
SmartGWT EE Showcase
Getting Started 300 examples, including adv. app example ZKDemo
Features
Ample SDK DHTMLX Dojo Echo3 Ext JS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT SweetDEV RIA YUI ZK
Feature detection[5] No[6] No No[7] No No No[8][9] Yes[10] No[11] No[12] Yes[13] No[14] Partial No[15] No Partial [16] Yes No[17]
DOM wrapped[18] Yes[19] Yes Yes Yes Yes Yes Yes Yes Yes No[20] No[21][22] Yes Yes Yes No Yes Yes Yes Yes
XMLHttpRequest
data retrieval
Yes Yes Yes[23] Yes Yes Yes Yes Yes Yes[24] Yes Yes Yes No Yes[25] Yes Yes Yes
JSON data retrieval Yes Yes Yes[26] Yes Yes Yes Yes Yes Yes[27] Yes Yes[28] Yes No Yes Yes Yes Yes
Server push data retrieval Yes[29] Yes[30] Yes[31] Yes[32] Yes[33] Via Plugin Yes[34]
Other data retrieval Yes: XML Yes: XML, CSV Yes: XML, HTML, CSV, ATOM[35] Yes: XML Yes: RPC Yes: XML, HTML Yes: XML, HTML Yes: XML, WSDL, RSS, and Java-based SQL, Hibernate, POJO adapters Yes
Drag and drop Yes Yes Yes[36] Yes Yes With plugin[37] Yes Yes Yes Yes[38] Yes Depends Yes Yes Yes Yes Depends[39] Yes Yes
Simple visual effects Yes Yes Yes[40] Yes Yes Yes Yes Yes Yes[41] Yes Yes Yes No Yes Yes No Yes Yes
Animation /
advanced visual effects
Yes No Yes[42] Yes Yes Yes Yes Yes Yes[43] Yes[44] Yes Yes No Yes Yes No Yes Yes
Event handling Yes[45] Yes Yes[46] Yes Yes Yes Yes Yes Yes[47] Yes Yes[48] Yes Yes Yes Yes Depends[49] Yes Yes
Back button support /
history management
Yes No Yes[50] Yes[51] Yes With plugins[52] Yes With plugin[53] Yes Yes[54] Yes No Yes Yes No[55] Yes Yes
Input form widgets & validation Yes Yes[56] Yes[57] Yes Yes Yes, Validation requires plugin[58] With plugins[59] Yes Yes Yes Yes[54] Yes Yes Yes Yes Yes Yes Yes
Ample SDK DHTMLX Dojo Echo3 ExtJS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT SweetDEV RIA YUI ZK
Grid Yes[60] Yes[61] Yes[62] Yes Yes Yes With plugins[63] No With plugin[64] Yes Yes Yes Yes[65] Yes Yes Yes[66] Yes
Hierarchical Tree Yes[67] Yes[68] Yes[69] Yes[70] Yes With plugins[71] No With plugins[72] Yes[73] Yes[74] Yes Yes Yes Yes[75] Yes
Rich text editor Yes[76] Yes[77] Yes[78] Yes[79] Yes[80] Yes With plugins[81] No Yes[82] Yes Yes No No Yes No Yes Yes
Autocompletion tools Yes[83] Yes[84] Yes Yes With plugins[85] Yes With plugin[86] Yes Yes Yes Yes Yes Yes Yes Yes
HTML generation tools Yes Yes Yes[87] Yes Yes Yes No Yes[88] Yes Yes Yes Yes Yes Yes No Yes Yes
Widgets themeable / skinnable Yes Yes[89] Yes[90] Yes[91] Yes[92] Yes[93] Yes Yes Yes[94] Yes Yes[95] Yes
GUI resizable panels and modal dialogs Yes Yes[96] Yes Yes Yes With plugins Yes[97] Yes Yes Yes Yes[98]
GUI page layout Yes Yes[99] Yes Yes Yes With plugin[100] Yes[97] Yes Yes Yes Yes[101]
Canvas support Yes Yes Yes[102] Yes Yes Yes[103] Yes Yes Yes Yes Yes[104]
Mobile/tablet support (touch events) Yes Yes[105] Yes[106] No Yes With plugin[107] With plugin[108] With plugin[109] Yes Yes Yes
Accessibility /
graceful degradation[110]
No No Yes[111] Partial[112] Yes[113] Yes Yes No[114] Degradation: No
Accessibility: Yes
No Yes[115] Yes
ARIA compliant Yes[111] No Yes[116] No Yes No Yes Yes
Developer tools, Visual design No Yes[117] Yes[118] In development[119] Yes[120] Yes Yes[121][122] Yes[123][124] No Yes[125] Yes No Yes[126] Yes
Offline storage[127] No No[128] Via Adobe Air Via Google Gears[129] No No Via Pyjamas-Desktop[130] No Yes No Via plugin[131] Yes
Cross-browser 2d Vector Graphics[132] Yes[133] Yes[134] Yes Yes[135] Yes Yes Yes Yes[136]
Charting & Dashboard[137] Yes[138] Yes[139] Yes[140] Yes[141] With plugin[142] Yes Yes[143] Yes[144]
Ample SDK DHTMLX Dojo Echo3 ExtJS Google Web Toolkit jQuery midori MochiKit MooTools Prototype & script. aculo.us[1] Pyjamas qooxdoo Rialto Toolkit Rico SmartClient and SmartGWT SweetDEV RIA YUI ZK
Browser Support
Internet Explorer 6+ 6+ 6+ 6+ 6+ 6+ 6+[145] 6+ 6 6+ 6+ 6+ 6+ 6+ 5.5+ 6+ 6+ 6+ 6+
Mozilla Firefox 1+ 1+ 3+[146] 1.5+ 1.5+ 1+ 2+[145] 1.5+ 1.0.7, 1.5b2 2+ 1.5+ 1+ 2+ 1.5+ 1+ 1+ 3+[147] 2.0+
Safari 3+ 2.0+ 4[146] 3+ 3+ 3+ 3+[145] 2+ 2.0.2 3+ 2.0.4+ 2+ 3+ 2.0.3[148] 3+ 3+ 4.0 3+
Opera 9.6+ 9+ 10[146] 9+ 9+ 9+ 9+[145] 9+ 8.5 9+ 9.25+ 9+ 9+ 9+ 9+ 9.21+, possibly earlier as well 10.0+ 9+
Chrome 1+ 1+ 3[146] 1+ 3+[149] 1+ 1+[145] 1+ 1+ (starting with 1.6.1RC3) 2+ 1+ 2+

See also

List of JavaScript libraries

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

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • JavaScript syntax — This article is part of the JavaScript series. JavaScript JavaScript syntax JavaScript topics This box: view · …   Wikipedia

  • JavaScript library — A JavaScript library is a library of pre written JavaScript controls which allow for easier development of JavaScript based applications, especially for AJAX and other web centric technologies.While JavaScript, as first developed by Netscape (and …   Wikipedia

  • JavaScript — Не следует путать с Java. JavaScript Класс языка: мультипарадигменный …   Википедия

  • Comparison of programming languages (mapping) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Client-side JavaScript — (CSJS) is JavaScript that runs on the client side. While JavaScript was originally created to run this way, the term was coined because the language is no longer limited to just client side, since server side JavaScript (SSJS) is now available.… …   Wikipedia

  • List of web application frameworks — This is a list of notable web application frameworks, used for creating web applications. Client side ActionScript * Cairngorm * PureMVCJavaScript* Backbase * CJAX * Clean AJAX * Dojo Toolkit * Echo * Ext * [http://www.gapjumper.com/ Gapjumper] * …   Wikipedia

  • Prototype JavaScript Framework — Infobox Software name = Prototype JavaScript Framework developer = [http://prototypejs.org/core Prototype Core Team] latest release version = 1.6.0.3 latest release date = release date|2008|09|28 genre = JavaScript toolkit license = MIT License… …   Wikipedia

  • Ext (javascript library) — Infobox Software caption = ExtJS 2.0 Web Desktop name = Ext JavaScript Library developer = Jack Slocum, Brian Moeskau, Aaron Conran, Rich Waters latest release version = [http://extjs.com/deploy/ext 2.2/CHANGES.html 2.2] latest release date =… …   Wikipedia

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Comparison of server-side JavaScript solutions — This is a list of Server side JavaScript solutions. Contents 1 Server side JavaScript use 2 See also 3 External links 4 References …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”