Jump to content

Comparison of JavaScript-based web frameworks: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Changing short description from "Wikipedia list article" to none (Shortdesc helper)
more
 
(46 intermediate revisions by 31 users not shown)
Line 1: Line 1:
{{Short description|none}}
{{Short description|none}}
{{Merge to|Comparison of web frameworks|discuss=Talk:Comparison of web frameworks#Proposed merge of Comparison of JavaScript-based web frameworks into Comparison of web frameworks|date=April 2021}}
{{hatnote|For [[Frontend and backend|backend]] JavaScript web frameworks, see {{section link|Comparison of server-side web frameworks|JavaScript}}.}}
{{update|reason=Does not reflect newer libraries or versions made available in the last several years|date=April 2017}}
{{update|reason=Does not reflect newer libraries or versions made available in the last several years|date=April 2017}}
{{Use dmy dates|date=May 2013}}
{{Use dmy dates|date=August 2023}}


<!-- ===== *** IMPORTANT NOTE – READ BEFORE ADDING AN ENTRY *** ==== -->
<!-- ===== *** IMPORTANT NOTE – READ BEFORE ADDING AN ENTRY *** ==== -->
Line 14: Line 14:
<!-- section (such as the "References" section) will also be removed. -->
<!-- section (such as the "References" section) will also be removed. -->
<!-- ====================================================================== -->
<!-- ====================================================================== -->
This is a comparison of [[web framework]]s that are heavily reliant on [[JavaScript]] code for their behavior.
This is a comparison of [[web framework]]s for [[front-end web development]] that are heavily reliant on [[JavaScript]] code for their behavior.


==General information==
==General information==

{|class="wikitable sortable" style="font-size:small;"
{|class="wikitable sortable" style="font-size:small;"
|-
|-
Line 26: Line 27:
|-
|-
!{{rh}}|[[Angular (application platform)|Angular]]
!{{rh}}|[[Angular (application platform)|Angular]]
|<!-- Version --> 7<br />{{nowrap|18 Oct 2018}}
|<!-- Version --> 14.0.4<br />{{nowrap|29 June 2022}}
|<!-- Size --> {{nowrap|563 kB}} (minified & compressed)
|<!-- Size --> {{nowrap|563 kB}} (minified & compressed)
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> TypeScript
|[[TypeScript|<!-- Language -->TypeScript]]
|-
|-
!{{rh}}|[[AngularJS]]
!{{rh}}|[[AngularJS]]
Line 48: Line 49:
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
|-
!{{rh}}|[https://github.com/fabiospampinato/cash Cash (library)]
|<!-- Version -->8.1.0<br />{{nowrap|13 Sep 2020}}
|<!-- Size --> {{nowrap|6 kB}} (minified & gzipped), <br />{{nowrap|16 kB}} (minified), <br />{{nowrap|36.5 kB}} (uncompressed)<ref>{{cite web |url=https://github.com/fabiospampinato/cash/tree/90fa855750c883cbf3420ddc8b080441f9e439eb#readme |title=GitHub.com - Cash - Readme |access-date=2021-07-20 }}</ref>
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> TypeScript / JavaScript
|-
|-
!{{rh}}|[[Dojo Toolkit|Dojo]]
!{{rh}}|[[Dojo Toolkit|Dojo]]
Line 72: Line 67:
|<!-- License --> {{free|[[Apache 2 License|Apache 2]]<ref>{{cite web |url=http://enyojs.com/about/#License |title=About Enyo JS |website=enyojs.com |access-date=2014-11-23}}</ref>}}
|<!-- License --> {{free|[[Apache 2 License|Apache 2]]<ref>{{cite web |url=http://enyojs.com/about/#License |title=About Enyo JS |website=enyojs.com |access-date=2014-11-23}}</ref>}}
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
|-
!{{rh}}|[[Express.js]]
|<!-- Version -->
|<!-- Size -->
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> NodeJS
|-
|-
!{{rh}}|[[Ext (JavaScript library)|Ext JS]]
!{{rh}}|[[Ext (JavaScript library)|Ext JS]]
|<!-- Version -->7.3<br />15 Sept, 2020
|<!-- Version -->7.3<br />15 Sept, 2020
|<!-- Size --> {{nowrap|84–502 kB}}
|<!-- Size --> {{nowrap|84–502 kB}}
|<!-- License --> [[GPL v3|GPL]] & Commercial <ref>{{cite web |url=http://www.sencha.com/products/license.php |title=Ext JS 7.3.0 Licensing |website=sencha.com |access-date=2020-11-05 |archive-url=https://web.archive.org/web/20110109190444/http://www.sencha.com/products/license.php |archive-date=5 Nov 2020 |url-status=dead }}</ref>
|<!-- License --> [[GPL v3|GPL]] & Commercial<ref>{{cite web |url=http://www.sencha.com/products/license.php |title=Ext JS 7.3.0 Licensing |website=sencha.com |access-date=2020-11-05 |archive-url=https://web.archive.org/web/20110109190444/http://www.sencha.com/products/license.php |archive-date=9 January 2011 |url-status=dead }}</ref>
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
|-
|-
!{{rh}}|[[Google Web Toolkit]]
!{{rh}}|[[Google Web Toolkit]]
|<!-- Version --> 2.7.0<br />{{nowrap|November 2014}}
|<!-- Version -->2.10.0<br />{{nowrap|June 2022}}
|<!-- Size --> Variable
|<!-- Size --> Variable
|<!-- License --> {{free|[[Apache License|Apache]]}}
|<!-- License --> {{free|[[Apache License|Apache]]}}
Line 92: Line 81:
|-
|-
!{{rh}}|[[jQuery]] (library)
!{{rh}}|[[jQuery]] (library)
|<!-- Version -->3.6.0<br />{{nowrap|03 Mar 2021}}
|<!-- Version -->3.6.0<br />{{nowrap|3 Mar 2021}}
|<!-- Size -->{{nowrap|70.7KB}} (slim, minified), <br />{{nowrap|87.4KB}} (minified),<ref name="jquery CDN files">{{cite web|title=jQuery Core - All Versions|url=https://code.jquery.com/jquery/|url-status=live|access-date=22 March 2021|website=jQuery|publisher=jQuery}}</ref> <br />{{nowrap|282 KiB}} (uncompressed)<ref name="jquery CDN files"/>
|<!-- Size -->{{nowrap|70.7KB}} (slim, minified), <br />{{nowrap|87.4KB}} (minified),<ref name="jquery CDN files">{{cite web|title=jQuery Core - All Versions|url=https://code.jquery.com/jquery/|url-status=live|access-date=22 March 2021|website=jQuery|publisher=jQuery|archive-url=https://web.archive.org/web/20130809042048/http://code.jquery.com/jquery/ |archive-date=9 August 2013 }}</ref> <br />{{nowrap|282 KiB}} (uncompressed)<ref name="jquery CDN files"/>
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
Line 114: Line 103:
<br /><!-- Size --> Variable; <br />{{nowrap|7.3–65 KiB}} {{nowrap|([[YUI Library#Build tools|YUI Compressor]])}},<ref>{{cite web|url=http://mootools.net/more/builder|title=MooTools More Builder|website=mootools.net}}</ref> <br />{{nowrap|101 KiB}} (uncompressed)<ref>{{cite web|url=http://mootools.net/download|title=MooTools Core|website=mootools.net}}</ref>
<br /><!-- Size --> Variable; <br />{{nowrap|7.3–65 KiB}} {{nowrap|([[YUI Library#Build tools|YUI Compressor]])}},<ref>{{cite web|url=http://mootools.net/more/builder|title=MooTools More Builder|website=mootools.net}}</ref> <br />{{nowrap|101 KiB}} (uncompressed)<ref>{{cite web|url=http://mootools.net/download|title=MooTools Core|website=mootools.net}}</ref>
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript
|-
!{{rh}}|[[Node.js]]
|<!-- Version -->
|<!-- Size -->
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript
|-
!{{rh}}|[[React (JavaScript library)]]
|<!-- Version --> 16.1.1<br />28 November 2017
|<!-- Size --><br />[https://github.com/facebook/react/releases/download/v16.1.1/react.production.min.js react.production.min.js] 6.41KB
[https://github.com/facebook/react/releases/download/v16.1.1/react-dom.production.min.js react-dom.production.min.js] 92.4KB

'''Total: 98.81KB'''
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript
|-
!{{rh}}|SAP [[OpenUI5]]
|<!-- Version -->1.87.3<br />{{nowrap|17 Mar 2021}}
|<!-- Size -->787KB (core, minified)
59.8MB (runtime, minified, zipped)

28.3MB (mobile runtime, minified, zipped)

205MB (SDK, zipped)
|<!-- License --> {{free|[[Apache 2 License|Apache 2]]}}<ref>{{cite web | url=https://github.com/SAP/openui5/ | title=OpenUI5 | publisher=GitHub | access-date=22 December 2020 }}</ref>
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
|-
|-
Line 152: Line 115:
|<!-- Size --> Variable, starting at {{nowrap|6 kB}} (gzipped)
|<!-- Size --> Variable, starting at {{nowrap|6 kB}} (gzipped)
|<!-- License --> {{free|[[LGPL]] & [[Eclipse Public License|EPL]]}}
|<!-- License --> {{free|[[LGPL]] & [[Eclipse Public License|EPL]]}}
|<!-- Language --> JavaScript
|-
!{{rh}}|[[React (JavaScript library)|React]]
|<!-- Version --> 18.2.0<br />14 June 2022
|<!-- Size --><br />react.production.min.js 6.41KB
react-dom.production.min.js 92.4KB

'''Total: 98.81KB'''
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript / TypeScript
|-
!{{rh}}|SAP [[OpenUI5]]
|<!-- Version -->1.102.1<br />{{nowrap|15 Jun 2022}}
|<!-- Size -->Variable, starting at 213 kB (gzipped)
|<!-- License --> {{free|[[Apache 2 License|Apache 2]]}}<ref>{{cite web | url=https://github.com/SAP/openui5/ | title=OpenUI5 | publisher=GitHub | access-date=22 December 2020 }}</ref>
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
|-
|-
Line 169: Line 147:
|<!-- Version --> 2.6.10<br />{{nowrap|20 Mar 2019 }}
|<!-- Version --> 2.6.10<br />{{nowrap|20 Mar 2019 }}
|<!-- Size --> 33.5 KB (minified & gzipped)
|<!-- Size --> 33.5 KB (minified & gzipped)
91.48 KB (minified) <ref name="vue CDN files">{{cite web|url=https://cdn.jsdelivr.net/npm/[email protected]/dist/|title=vue CDN files|website=cdn.jsdelivr|publisher=JSDelivr|access-date=23 April 2019}}</ref>
91.48 KB (minified)<ref name="vue CDN files">{{cite web|url=https://cdn.jsdelivr.net/npm/[email protected]/dist/|title=vue CDN files|website=cdn.jsdelivr|publisher=JSDelivr|access-date=23 April 2019}}</ref>


333.46 KB (uncompressed) <ref name="vue CDN files"/>
333.46 KB (uncompressed)<ref name="vue CDN files"/>
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- License --> {{free|[[MIT License|MIT]]}}
|<!-- Language --> JavaScript / TypeScript
|<!-- Language --> JavaScript / TypeScript
|-
!{{rh}}|[[Wakanda (software)|Wakanda]]
|<!-- Version --> 9<br />{{nowrap|14 Nov 2014}}
|<!-- Size --> Variable
|<!-- License --> [[GPL3]] (framework), [[Affero General Public License|AGPL]] (server) & [https://web.archive.org/web/20141210051445/http://www.wakanda.org/licensing-pricing Commercial]
|<!-- Language --> JavaScript + HTML + CSS
|-
|-
!{{rh}}|[[Webix]]
!{{rh}}|[[Webix]]
|<!-- Version --> 4.1<br />{{nowrap|November 2016}}
|<!-- Version --> 4.1<br />{{nowrap|November 2016}}
|<!-- Size --> 188 kB (gzipped)
|<!-- Size --> 188 kB (gzipped)
|<!-- License --> [[GPL]] & [https://webix.com/licenses/ Commercial]
|<!-- License -->[[GPL]] & Commercial<ref>{{Cite web |title=JavaScript UI Components Library Webix - Licenses |url=https://webix.com/licenses/ |access-date=2022-06-01 |website=webix.com |language=en}}</ref>
|<!-- Language --> JavaScript
|<!-- Language --> JavaScript
|-
|-
Line 190: Line 162:
|<!-- Version --> 8.0.1 <br />{{nowrap|19 Jan 2016}}
|<!-- Version --> 8.0.1 <br />{{nowrap|19 Jan 2016}}
|<!-- Size --> Variable
|<!-- Size --> Variable
|<!-- License --> [[LGPL]] & [[GPL]] & [http://www.zkoss.org/license/ ZOL]
|<!-- License -->[[LGPL]] & [[GPL]] & ZOL<ref>{{Cite web |title=ZK - Leading Enterprise Java Web Framework |url=http://www.zkoss.org/ |access-date=2022-06-01 |website=ZK - Java Web Framework |language=en}}</ref>
|<!-- Language --> XML + Java (JavaScript optional)
|<!-- Language --> XML + Java (JavaScript optional)
|}
|}


== Features ==
== Features ==
{| class="wikitable" style="font-size:60%;"
{| class="wikitable" style="font-size:small;"
!
!
![[Angular (web framework)|Angular]]
![[AngularJS]]
![[AngularJS]]
![[Apache Royale]]
![[Apache Royale]]
!Cash
![[Dojo Toolkit|Dojo]]
![[Dojo Toolkit|Dojo]]
![[Ember.js]]
![[Ember.js]]
Line 211: Line 183:
![[Prototype JavaScript Framework|Prototype]] & [[script.aculo.us|script. aculo.us]]<ref name="addon" />
![[Prototype JavaScript Framework|Prototype]] & [[script.aculo.us|script. aculo.us]]<ref name="addon" />
![[qooxdoo]]
![[qooxdoo]]
![[React (JavaScript library)|React]]
![[SproutCore]]
![[SproutCore]]
![[Svelte]]
![[Svelte]]
![[Vue.js|Vue]]
![[Vue.js|Vue]]
![[Wakanda (software)|Wakanda]]
![[ZK Framework|ZK]]
![[ZK Framework|ZK]]
![[Webix]]
![[Webix]]
|-
|-
!{{rh}}| [[Feature detection (web development)|Feature detection]]<ref>Feature detection is preferred by many to browser sniffing to support future browsers: [http://www.jibbering.com/faq/faq_notes/not_browser_detect.html Browser Detecting (and what to do Instead)], [http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting Feature Detection: State of the Art Browser Scripting], [https://developer.mozilla.org/En/Browser_Feature_Detection Browser Feature Detection]</ref>
!{{rh}}| [[Feature detection (web development)|Feature detection]]<ref>Feature detection is preferred by many to browser sniffing to support future browsers: [http://www.jibbering.com/faq/faq_notes/not_browser_detect.html Browser Detecting (and what to do Instead)], [http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting Feature Detection: State of the Art Browser Scripting], [https://developer.mozilla.org/En/Browser_Feature_Detection Browser Feature Detection] {{Webarchive|url=https://web.archive.org/web/20170710191705/https://developer.mozilla.org/En/Browser_Feature_Detection |date=10 July 2017 }}</ref>
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref>{{cite web|url=http://dojotoolkit.org/reference-guide/dojo/has.html|title=dojo/has – The Dojo Toolkit - Reference Guide|website=dojotoolkit.org}}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web|url=http://dojotoolkit.org/reference-guide/dojo/has.html|title=dojo/has — The Dojo Toolkit - Reference Guide|website=dojotoolkit.org}}</ref>
|<!-- Ember.js --> {{yes}}
|<!-- Ember.js --> {{yes}}
|<!-- Enyo -->
|<!-- Enyo -->
|<!-- ExtJS --> {{yes}}<ref name="docs.sencha.com"/>
|<!-- ExtJS --> {{yes}}<ref name="docs.sencha.com"/>
|<!-- GWT --> {{no}}<ref>{{cite web|url=https://code.google.com/p/google-web-toolkit/source/browse/#svn/trunk/user/src/com/google/gwt/user/client/impl|title=Google Code Archive - Long-term storage for Google Code Project Hosting.|website=code.google.com}}</ref><ref>{{cite web|url=https://www.google.com/support/forum/p/Google+Docs/thread?tid=72fe7b0e15737560&hl=en|title=Google Groups|website=google.com}}</ref>
|<!-- GWT --> {{no}}<ref>{{cite web|url=https://code.google.com/p/google-web-toolkit/source/browse/#svn/trunk/user/src/com/google/gwt/user/client/impl|title=Google Code Archive - Long-term storage for Google Code Project Hosting.|website=code.google.com}}</ref><ref>{{cite web|url=https://www.google.com/support/forum/p/Google+Docs/thread?tid=72fe7b0e15737560&hl=en|title=Google Groups|website=google.com}}{{Dead link|date=February 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://docs.jquery.com/Release:jQuery_1.3|title=jQuery 1.3 Released - Official jQuery Blog|first=jQuery Foundation -|last=jquery.org|website=docs.jquery.com}}</ref>
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://docs.jquery.com/Release:jQuery_1.3|title=jQuery 1.3 Released - Official jQuery Blog|first=jQuery Foundation -|last=jquery.org|website=docs.jquery.com}}</ref>
|<!-- jQWidgets --> {{yes}}
|<!-- jQWidgets --> {{yes}}
Line 233: Line 205:
|<!-- proto --> {{no}}<ref>[http://thinkweb2.com/projects/prototype/feature-detection-all-the-way/ Feature detection all the way] {{webarchive|url=https://web.archive.org/web/20090421020449/http://thinkweb2.com/projects/prototype/feature-detection-all-the-way/ |date=21 April 2009 }}</ref>
|<!-- proto --> {{no}}<ref>[http://thinkweb2.com/projects/prototype/feature-detection-all-the-way/ Feature detection all the way] {{webarchive|url=https://web.archive.org/web/20090421020449/http://thinkweb2.com/projects/prototype/feature-detection-all-the-way/ |date=21 April 2009 }}</ref>
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> Partial
| {{no}}
| {{no}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| DOM wrapped<ref name="kangax">{{cite web |url=http://perfectionkills.com/whats-wrong-with-extending-the-dom/ |title=What's wrong with extending the DOM|author=kangax|date=5 April 2010|access-date=6 April 2010}}</ref>
!{{rh}}| DOM wrapped<ref name="kangax">{{cite web |url=http://perfectionkills.com/whats-wrong-with-extending-the-dom/ |title=What's wrong with extending the DOM|author=kangax|date=5 April 2010|access-date=6 April 2010}}</ref>
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- jQuery --> {{yes}}
|<!-- dojo --> {{yes}}
|<!-- dojo --> {{yes}}
|<!-- Ember.js --> {{no}}
|<!-- Ember.js --> {{no}}
Line 253: Line 225:
|<!-- MooTools --> {{no}}<ref>{{cite web|url=http://mootools.net/docs/core/Element/Element|title=MooTools Core Documentation|website=mootools.net}}</ref>
|<!-- MooTools --> {{no}}<ref>{{cite web|url=http://mootools.net/docs/core/Element/Element|title=MooTools Core Documentation|website=mootools.net}}</ref>
|<!-- OpenUi5 -->
|<!-- OpenUi5 -->
|<!-- proto --> {{no}}<ref>{{cite web|url=http://www.prototypejs.org/api/element|title=Prototype API Documentation - Element (Deprecated URL)|website=prototypejs.org}}</ref><ref>{{cite web|url=http://ajaxian.com/archives/prototype-2-0-will-not-extend-the-dom|title=Prototype 2.0 will not extend the DOM - Ajaxian|website=ajaxian.com}}</ref>
|<!-- proto --> {{no}}<ref>{{cite web|url=http://www.prototypejs.org/api/element|title=Prototype API Documentation - Element (Deprecated URL)|website=prototypejs.org}}</ref><ref>{{cite web|url=http://ajaxian.com/archives/prototype-2-0-will-not-extend-the-dom|title=Prototype 2.0 will not extend the DOM - Ajaxian|website=ajaxian.com|date=17 November 2015 }}</ref>
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{no}}
|<!-- SproutCore --> {{no}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| [[Ajax (programming)|XMLHttpRequest]]<br />data retrieval
!{{rh}}| [[Ajax (programming)|XMLHttpRequest]]<br />data retrieval
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Ember.js --> {{no}}
|<!-- dojo --> {{yes}}<ref name="AJAX and Dojo">[http://docs.dojocampus.org/quickstart/ajax AJAX and Dojo] {{webarchive|url=https://web.archive.org/web/20100209042422/http://docs.dojocampus.org/quickstart/ajax |date=9 February 2010 }}</ref>
|<!-- dojo --> {{yes}}<ref name="AJAX and Dojo">[http://docs.dojocampus.org/quickstart/ajax AJAX and Dojo] {{webarchive|url=https://web.archive.org/web/20100209042422/http://docs.dojocampus.org/quickstart/ajax |date=9 February 2010 }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 277: Line 249:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK -->
|<!-- ZK -->
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| [[WebSocket]]
!{{rh}}| [[WebSocket]]
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref name="AJAX and Dojo"/>
|<!-- dojo --> {{yes}}<ref name="AJAX and Dojo"/>
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 299: Line 271:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes| Via Plugin}}
|<!-- SproutCore --> {{yes| Via Plugin}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK -->
|<!-- ZK -->
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__server_faye.html|title=WebSockets (Faye) of Guides, Interacting with the Server Side Webix Docs|website=docs.webix.com|access-date=25 November 2016|archive-url=https://web.archive.org/web/20180803044459/https://docs.webix.com/desktop__server_faye.html|archive-date=3 August 2018|url-status=dead}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__server_faye.html|title=WebSockets (Faye) of Guides, Interacting with the Server Side Webix Docs|website=docs.webix.com|access-date=25 November 2016|archive-url=https://web.archive.org/web/20180803044459/https://docs.webix.com/desktop__server_faye.html|archive-date=3 August 2018|url-status=dead}}</ref>
|-
|-
!{{rh}}| [[Server push]] data retrieval
!{{rh}}| [[Server push]] data retrieval
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref name="cometd.org">{{cite web |url=http://cometd.org/documentation/cometd-javascript |title=CometD JavaScript &#124; cometd.org |access-date=2010-10-07 |url-status=dead |archive-url=https://web.archive.org/web/20100919030621/http://cometd.org/documentation/cometd-javascript |archive-date=19 September 2010 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref name="cometd.org">{{cite web |url=http://cometd.org/documentation/cometd-javascript |title=Archived copy |access-date=2010-10-07 |url-status=dead |archive-url=https://web.archive.org/web/20100919030621/http://cometd.org/documentation/cometd-javascript |archive-date=19 September 2010 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=https://github.com/kembuco/extjs-cometd/|title=kembuco/extjs-cometd|website=GitHub}}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=https://github.com/kembuco/extjs-cometd/|title=kembuco/extjs-cometd|website=GitHub|date=8 July 2020 }}</ref>
|<!-- GWT --> {{yes}}<ref>{{cite web|url=https://code.google.com/p/rocket-gwt/wiki/Comet|title=Google Code Archive - Long-term storage for Google Code Project Hosting.|website=code.google.com}}</ref>
|<!-- GWT --> {{yes}}<ref>{{cite web|url=https://code.google.com/p/rocket-gwt/wiki/Comet|title=Google Code Archive - Long-term storage for Google Code Project Hosting.|website=code.google.com}}</ref>
|<!-- jQuery --> {{yes}}<ref name="cometd.org"/>
|<!-- jQuery --> {{yes}}<ref name="cometd.org"/>
Line 321: Line 293:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo -->
|<!-- qooxdoo -->
|<!-- React -->
|<!-- SproutCore -->{{yes| Via Plugin}}
|<!-- SproutCore -->{{yes| Via Plugin}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->
|<!-- ZK --> {{yes}}<ref>{{cite web|url=http://books.zkoss.org/wiki/ZK_Developer's_Reference/Server_Push|title=ZK - Leading Enterprise Ajax Solutions}}</ref>
|<!-- ZK --> {{yes}}<ref>{{cite web|url=http://books.zkoss.org/wiki/ZK_Developer's_Reference/Server_Push|title=ZK - Leading Enterprise Ajax Solutions}}</ref>
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| Other data retrieval
!{{rh}}| Other data retrieval
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes| Yes: XML, HTML, CSV, ATOM, AMF, JSON}}
|<!-- Apache Royale --> {{yes| Yes: XML, HTML, CSV, ATOM, AMF, JSON}}
|<!-- dojo --> {{yes| Yes: XML, HTML, CSV, ATOM}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/data |title=Dojox/Data - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090317061859/http://docs.dojocampus.org/dojox/data/ |archive-date=17 March 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes| Yes: XML, HTML, CSV, ATOM}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/data |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090317061859/http://docs.dojocampus.org/dojox/data/ |archive-date=17 March 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
Line 343: Line 315:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo -->
|<!-- qooxdoo -->
|<!-- React -->
|<!-- SproutCore -->
|<!-- SproutCore -->
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes | Yes: JSON-RPC, Wakanda REST}}
|<!-- ZK -->
|<!-- ZK -->
|<!-- Webix --> {{yes | Yes: XML, HTML, CS, JSON, JSArray, CSV}}
|<!-- Webix --> {{yes | Yes: XML, HTML, CS, JSON, JSArray, CSV}}
|-
|-
!{{rh}}| [[Drag and drop]]
!{{rh}}| [[Drag and drop]]
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojo/dnd |title=Dojo/DND - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090406045822/http://docs.dojocampus.org/dojo/dnd |archive-date=6 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojo/dnd |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090406045822/http://docs.dojocampus.org/dojo/dnd |archive-date=6 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
|<!-- ExtJS --> {{yes}}
|<!-- ExtJS --> {{yes}}
|<!-- GWT --> {{depends| With plugin}}<ref>{{cite web|url=https://code.google.com/p/gwt-dnd/|title=fredsa/gwt-dnd|website=GitHub}}</ref>
|<!-- GWT --> {{depends| With plugin}}<ref>{{cite web|url=https://code.google.com/p/gwt-dnd/|title=fredsa/gwt-dnd|website=GitHub|date=8 February 2022 }}</ref>
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=https://jqueryui.com/draggable/|title=Draggable - jQuery UI|first=JS Foundation -|last=js.foundation|website=jqueryui.com}}</ref>
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=https://jqueryui.com/draggable/|title=Draggable - jQuery UI|first=JS Foundation -|last=js.foundation|website=jqueryui.com}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxdragdrop/jquery-dragdrop-getting-started.htm |title=jQuery DragDrop Plugin |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxdragdrop/jquery-dragdrop-getting-started.htm |title=jQuery DragDrop Plugin |website=jqwidgets.com |access-date=2015-12-17}}</ref>
Line 365: Line 337:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}<ref>{{cite web|url=http://docs.webix.com/datatree__dnd_support.html|title=Drag-and-Drop Support of UI Widgets, Tree Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=http://docs.webix.com/datatree__dnd_support.html|title=Drag-and-Drop Support of UI Widgets, Tree Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!{{rh}}| Simple visual effects
!{{rh}}| Simple visual effects
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojo/fx/ |title=Dojo/Fx - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090416192527/http://docs.dojocampus.org/dojo/fx |archive-date=16 April 2009 }}</ref>
|<!-- Enyo --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojo/fx/ |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090416192527/http://docs.dojocampus.org/dojo/fx |archive-date=16 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo --> {{yes}}
|<!-- Enyo --> {{yes}}
Line 387: Line 359:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}<ref name="showcase.sproutcore.com">{{cite web|url=http://showcase.sproutcore.com/#demos/Transition+Plugins|title=Showcase|website=showcase.sproutcore.com}}</ref>
|<!-- SproutCore --> {{yes}}<ref name="showcase.sproutcore.com">{{cite web|url=http://showcase.sproutcore.com/#demos/Transition+Plugins|title=Showcase|website=showcase.sproutcore.com}}</ref>
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| Animation / <br /> advanced visual effects
!{{rh}}| Animation / <br /> advanced visual effects
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/fx/ |title=Dojox/Fx - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090304002856/http://docs.dojocampus.org/dojox/fx |archive-date=4 March 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/fx/ |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090304002856/http://docs.dojocampus.org/dojox/fx |archive-date=4 March 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo --> {{yes}}<ref>{{cite web|url=http://enyojs.com/api/#enyo.Animator|title=Enyo API Reference|website=enyojs.com}}</ref>
|<!-- Enyo --> {{yes}}<ref>{{cite web|url=http://enyojs.com/api/#enyo.Animator|title=Enyo API Reference|website=enyojs.com|access-date=1 August 2012|archive-date=20 December 2013|archive-url=https://web.archive.org/web/20131220053530/http://enyojs.com/api/#enyo.Animator|url-status=dead}}</ref>
|<!-- ExtJS --> {{yes}}
|<!-- ExtJS --> {{yes}}
|<!-- GWT --> {{yes}}
|<!-- GWT --> {{yes}}
Line 409: Line 381:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}<ref name="showcase.sproutcore.com"/>
|<!-- SproutCore --> {{yes}}<ref name="showcase.sproutcore.com"/>
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__animation.html|title=Animation of Guides, Styling and Animation Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__animation.html|title=Animation of Guides, Styling and Animation Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!{{rh}}| Back button support / <br /> history management
!{{rh}}| Back button support / <br /> history management
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojo/back |title=Dojo/Back - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090402140220/http://docs.dojocampus.org/dojo/back |archive-date=2 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojo/back |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090402140220/http://docs.dojocampus.org/dojo/back |archive-date=2 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js --> {{yes}}
|<!-- Ember.js --> {{yes}}
|<!-- Enyo --> {{yes}}<ref>{{cite web|url=http://enyojs.com/docs/2.4.0/api/#enyo.Router|title=Enyo API Viewer|website=enyojs.com}}</ref>
|<!-- Enyo --> {{yes}}<ref>{{cite web|url=http://enyojs.com/docs/2.4.0/api/#enyo.Router|title=Enyo API Viewer|website=enyojs.com|access-date=24 April 2014|archive-date=24 March 2016|archive-url=https://web.archive.org/web/20160324004253/http://enyojs.com/docs/2.4.0/api/#enyo.Router|url-status=dead}}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{Cite web |url=http://www.sencha.com/products/js/roadmap.php |title=Since v2.2 |access-date=11 September 2010 |archive-url=https://web.archive.org/web/20101229115415/http://www.sencha.com/products/js/roadmap.php |archive-date=29 December 2010 |url-status=dead }}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{Cite web |url=http://www.sencha.com/products/js/roadmap.php |title=Since v2.2 |access-date=11 September 2010 |archive-url=https://web.archive.org/web/20101229115415/http://www.sencha.com/products/js/roadmap.php |archive-date=29 December 2010 |url-status=dead }}</ref>
|<!-- GWT --> {{yes}}
|<!-- GWT --> {{yes}}
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=http://www.asual.com/jquery/address/|title=Asual|last=Asual|website=asual.com}}</ref>
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=http://www.asual.com/jquery/address/|title=Asual|last=Asual|website=asual.com}}</ref>
|<!-- jQWidgets --> {{no}}
|<!-- jQWidgets --> {{no}}
|<!-- MooTools --> {{depends|With plugin}}<ref>{{cite web|url=https://github.com/cpojer/mootools-history|title=cpojer/mootools-history|website=GitHub}}</ref>
|<!-- MooTools --> {{depends|With plugin}}<ref>{{cite web|url=https://github.com/cpojer/mootools-history|title=cpojer/mootools-history|website=GitHub|date=10 October 2021 }}</ref>
|<!-- OpenUi5 -->
|<!-- OpenUi5 -->
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| Input form [[Web widget|widgets]] & validation
!{{rh}}| Input form [[Web widget|widgets]] & validation
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/form |title=Dijit/Form - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090403160521/http://docs.dojocampus.org/dijit/form |archive-date=3 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/form |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090403160521/http://docs.dojocampus.org/dijit/form |archive-date=3 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo --> {{yes}}
|<!-- Enyo --> {{yes}}
Line 453: Line 425:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}} <ref>{{cite web|url=https://docs.webix.com/desktop__data_validation.html|title=Data Validation of Guides, Managing Data in a Component Webix Docs|website=docs.webix.com}}</ref><ref>{{cite web|url=https://docs.webix.com/desktop__formatted_text_inputs.html|title=Formatted Text Inputs of UI Controls, Text Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__data_validation.html|title=Data Validation of Guides, Managing Data in a Component Webix Docs|website=docs.webix.com}}</ref><ref>{{cite web|url=https://docs.webix.com/desktop__formatted_text_inputs.html|title=Formatted Text Inputs of UI Controls, Text Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!style="width:15em; font-size:60%;"|
!style="width:15em; font-size:60%;"|
![[Angular (web framework)|Angular]]
![[AngularJS]]
![[AngularJS]]
![[Apache Royale]]
![[Apache Royale]]
!Cash
![[Dojo Toolkit|Dojo]]
![[Dojo Toolkit|Dojo]]
![[Ember.js]]
![[Ember.js]]
Line 475: Line 447:
![[Prototype JavaScript Framework|Prototype]] & [[script.aculo.us|script. aculo.us]]<ref name="addon" />
![[Prototype JavaScript Framework|Prototype]] & [[script.aculo.us|script. aculo.us]]<ref name="addon" />
![[qooxdoo]]
![[qooxdoo]]
![[React (JavaScript library)|React]]
![[SproutCore]]
![[SproutCore]]
![[Svelte]]
![[Svelte]]
![[Vue.js|Vue]]
![[Vue.js|Vue]]
![[Wakanda (software)|Wakanda]]
![[ZK Framework|ZK]]
![[ZK Framework|ZK]]
![[Webix]]
![[Webix]]
|-
|-
!{{rh}}| [[Grid (graphic design)|Grid]]
!{{rh}}| [[Grid (graphic design)|Grid]]
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/grid |title=Dojox/Grid - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090423165855/http://docs.dojocampus.org/dojox/grid |archive-date=23 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/grid |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090423165855/http://docs.dojocampus.org/dojox/grid |archive-date=23 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
Line 493: Line 465:
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=http://www.trirand.com/blog/|title=jqGrid] ShieldUI jQuery Grid}}</ref>
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=http://www.trirand.com/blog/|title=jqGrid] ShieldUI jQuery Grid}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/index.htm |title=jQuery Grid, JavaScript Grid, jqxGrid, DataGrid, jQuery DataGrid |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/index.htm |title=jQuery Grid, JavaScript Grid, jqxGrid, DataGrid, jQuery DataGrid |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools --> {{depends|With plugin}}<ref>{{cite web|url=http://jxlib.org/|title=JxLib Library|access-date=18 November 2008|archive-url=http://webarchive.loc.gov/all/20090218102758/http%3A//jxlib.org//|archive-date=18 February 2009|url-status=dead}} or {{cite web |url=http://www.phatfusion.net/sortabletable/index.htm |publisher=phatfusion |title=sortable table plugin |archive-url=https://web.archive.org/web/20090422131647/http://www.phatfusion.net/sortabletable/index.htm |archive-date=22 April 2009 }} or {{cite web |url=http://www.drasticdata.nl/DDHome.php?m=3 |title=DrasticGrid }}</ref>
|<!-- MooTools --> {{depends|With plugin}}<ref>{{cite web|url=http://jxlib.org/|title=JxLib Library|access-date=18 November 2008|archive-url=http://webarchive.loc.gov/all/20090218102758/http%3A//jxlib.org//|archive-date=18 February 2009|url-status=dead}} or {{cite web |url=http://www.phatfusion.net/sortabletable/index.htm |publisher=phatfusion |title=sortable table plugin |archive-url=https://web.archive.org/web/20090422131647/http://www.phatfusion.net/sortabletable/index.htm |archive-date=22 April 2009 }} or {{cite web |url=http://www.drasticdata.nl/DDHome.php?m=3 |title=DrasticGrid |access-date=22 May 2009 |archive-date=15 April 2017 |archive-url=https://web.archive.org/web/20170415143921/http://jxlib.org/ |url-status=dead }}</ref>
|<!-- OpenUi5 --> {{yes}}
|<!-- OpenUi5 --> {{yes}}
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Grid.300-307017.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://webix.com/widget/datatable/|title=JavaScript Table (Grid) Widget – Webix HTML DataTable|website=webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://webix.com/widget/datatable/|title=JavaScript Table (Grid) Widget – Webix HTML DataTable|website=webix.com}}</ref>
|-
|-
!{{rh}}| [[Tree structure|Hierarchical Tree]]
!{{rh}}| [[Tree structure|Hierarchical Tree]]
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/Tree |title=Dijit/Tree - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090509101557/http://docs.dojocampus.org/dijit/Tree |archive-date=9 May 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/Tree |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090509101557/http://docs.dojocampus.org/dijit/Tree |archive-date=9 May 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo --> {{yes}}<ref>{{cite web|url=http://www.discoversdk.com/knowledge-base/enya-javascript-framework|title=Enyo JavaScript Framework - Example - DiscoverSDK Code Examples}}</ref>
|<!-- Enyo --> {{yes}}<ref>{{cite web|url=http://www.discoversdk.com/knowledge-base/enya-javascript-framework|title=Enyo JavaScript Framework - Example - DiscoverSDK Code Examples}}</ref>
Line 515: Line 487:
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=http://jquery.bassistance.de/treeview/demo/|title=treeview |archive-url=https://web.archive.org/web/20081009033326/http://jquery.bassistance.de/treeview/demo/ |archive-date=9 October 2008}}, {{cite web|url=http://abeautifulsite.net/notebook/58 |archive-url=https://web.archive.org/web/20080718170831/http://abeautifulsite.net/notebook/58 |url-status=dead|title=file_tree_viewer|archive-date=18 July 2008 }}</ref>
|<!-- jQuery --> {{depends|With plugins}}<ref>{{cite web|url=http://jquery.bassistance.de/treeview/demo/|title=treeview |archive-url=https://web.archive.org/web/20081009033326/http://jquery.bassistance.de/treeview/demo/ |archive-date=9 October 2008}}, {{cite web|url=http://abeautifulsite.net/notebook/58 |archive-url=https://web.archive.org/web/20080718170831/http://abeautifulsite.net/notebook/58 |url-status=dead|title=file_tree_viewer|archive-date=18 July 2008 }}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxtree/index.htm |title=jQuery Tree |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxtree/index.htm |title=jQuery Tree |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools --> {{depends|With plugins}}<ref>{{cite web|url=http://sites.google.com/a/mindplay.dk/mootree/|title=mootree|website=sites.google.com}}</ref>
|<!-- MooTools --> {{depends|With plugins}}<ref>{{cite web|url=http://sites.google.com/a/mindplay.dk/mootree/|title=mootree|website=sites.google.com|access-date=18 November 2008|archive-date=11 September 2016|archive-url=https://web.archive.org/web/20160911065330/https://sites.google.com/a/mindplay.dk/mootree/|url-status=dead}}</ref>
|<!-- OpenUi5 --> {{yes}}
|<!-- OpenUi5 --> {{yes}}
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}<ref>{{Cite web |url=http://demo.qooxdoo.org/current/demobrowser/ |title=Demo browser |access-date=3 October 2008 |archive-url=https://web.archive.org/web/20160402124804/http://demo.qooxdoo.org/current/demobrowser/ |archive-date=2 April 2016 |url-status=dead }}</ref>
|<!-- qooxdoo --> {{yes}}<ref>{{Cite web |url=http://demo.qooxdoo.org/current/demobrowser/ |title=Demo browser |access-date=3 October 2008 |archive-url=https://web.archive.org/web/20160402124804/http://demo.qooxdoo.org/current/demobrowser/ |archive-date=2 April 2016 |url-status=dead }}</ref>
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}} (Auto Form)<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Auto-Form.300-307049.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}} <ref>{{cite web|url=https://webix.com/widget/treetable/|title=Tree Table or TreeGrid - Webix HTML5 library with jQuery integration|website=webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://webix.com/widget/treetable/|title=Tree Table or TreeGrid - Webix HTML5 library with jQuery integration|website=webix.com}}</ref>
|-
|-
!{{rh}}| [[Online rich-text editor|Rich text editor]]
!{{rh}}| [[Online rich-text editor|Rich text editor]]
|<!-- Angular -->
|<!-- AngularJS --> {{no}}
|<!-- AngularJS --> {{no}}
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/Editor |title=Dijit/Editor - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090416192415/http://docs.dojocampus.org/dijit/Editor |archive-date=16 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/Editor |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090416192415/http://docs.dojocampus.org/dijit/Editor |archive-date=16 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
Line 537: Line 509:
|<!-- jQuery --> {{depends|With plugins}}<ref>[http://markitup.jaysalvat.com/home/ markitup], [https://code.google.com/p/jwysiwyg/ jwysiwyg], [http://remiya.com/cms/projects/jquery-plugins/htmlbox/ htmlbox] {{webarchive|url=https://web.archive.org/web/20090707082332/http://remiya.com/cms/projects/jquery-plugins/htmlbox/ |date=7 July 2009 }}, [http://www.wymeditor.org/en/ WYMeditor] {{webarchive|url=https://web.archive.org/web/20080603155530/http://www.wymeditor.org/en/ |date=3 June 2008 }}</ref>
|<!-- jQuery --> {{depends|With plugins}}<ref>[http://markitup.jaysalvat.com/home/ markitup], [https://code.google.com/p/jwysiwyg/ jwysiwyg], [http://remiya.com/cms/projects/jquery-plugins/htmlbox/ htmlbox] {{webarchive|url=https://web.archive.org/web/20090707082332/http://remiya.com/cms/projects/jquery-plugins/htmlbox/ |date=7 July 2009 }}, [http://www.wymeditor.org/en/ WYMeditor] {{webarchive|url=https://web.archive.org/web/20080603155530/http://www.wymeditor.org/en/ |date=3 June 2008 }}</ref>
|<!-- jQWidgets --> {{yes}}<ref name="jqxEditor">{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxeditor/index.htm |title=jQuery Editor |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref name="jqxEditor">{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxeditor/index.htm |title=jQuery Editor |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools --> {{yes}}<ref>{{cite web|url=https://cheeaun.github.com/mooeditable/|title=MooEditable|website=cheeaun.github.com}}</ref>
|<!-- MooTools --> {{yes}}<ref>{{cite web|url=https://cheeaun.github.com/mooeditable/|title=MooEditable|website=cheeaun.github.com|access-date=19 September 2017|archive-date=1 March 2013|archive-url=https://web.archive.org/web/20130301160627/http://cheeaun.github.com/mooeditable/|url-status=dead}}</ref>
|<!-- OpenUi5 -->
|<!-- OpenUi5 -->
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes|Via plugin}}
|<!-- SproutCore --> {{yes|Via plugin}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/WYSIWYG-Editor.300-944628.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__richtext.html|title=RichText - The RichText control documentation: overview and initialization. Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__richtext.html|title=RichText - The RichText control documentation: overview and initialization. Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!{{rh}}| [[Autocomplete|Autocompletion]] tools
!{{rh}}| [[Autocomplete|Autocompletion]] tools
|<!-- Angular -->
|<!-- AngularJS --> {{no}}
|<!-- AngularJS --> {{no}}
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/form/ComboBox |title=Dijit/Form/ComboBox - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090418063316/http://docs.dojocampus.org/dijit/form/ComboBox |archive-date=18 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dijit/form/ComboBox |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090418063316/http://docs.dojocampus.org/dijit/form/ComboBox |archive-date=18 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
Line 559: Line 531:
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://jqueryui.com/autocomplete/|title=Autocomplete - jQuery UI|first=JS Foundation -|last=js.foundation|website=jqueryui.com}}</ref>
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://jqueryui.com/autocomplete/|title=Autocomplete - jQuery UI|first=JS Foundation -|last=js.foundation|website=jqueryui.com}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxinput/index.htm |title=jQuery Input, jQuery Auto Complete |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxinput/index.htm |title=jQuery Input, jQuery Auto Complete |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools --> {{depends|With plugin}}<ref>{{cite web|url=http://digitarald.de/project/autocompleter/|title=AutoCompleter » digitarald:Harald Kirschner|website=digitarald.de}}</ref>
|<!-- MooTools --> {{depends|With plugin}}<ref>{{cite web|url=http://digitarald.de/project/autocompleter/|title=AutoCompleter » digitarald:Harald Kirschner|website=digitarald.de|access-date=25 April 2008|archive-date=23 October 2017|archive-url=https://web.archive.org/web/20171023134913/http://digitarald.de/project/autocompleter/|url-status=dead}}</ref>
|<!-- OpenUi5 -->
|<!-- OpenUi5 -->
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo -->
|<!-- qooxdoo -->
|<!-- React -->
|<!-- SproutCore --> {{depends|With plugins}}
|<!-- SproutCore --> {{depends|With plugins}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Combo-Box.300-716637.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| [[HTML]] generation tools
!{{rh}}| [[HTML]] generation tools
|<!-- Angular -->
|<!-- AngularJS --> {{no}}
|<!-- AngularJS --> {{no}}
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>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");</ref>
|<!-- dojo --> {{yes}}<ref>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");</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 585: Line 557:
|<!-- proto --> {{yes}}
|<!-- proto --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->{{no}}
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| Widgets themeable / skinnable
!{{rh}}| Widgets themeable / skinnable
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Cash -->
|<!-- dhtmlx --> {{yes}}<ref>{{cite web|url=http://www.dhtmlx.com/docs/products/skinBuilder/index.shtml|title=JavaScript UI Library, Ajax Components & HTML5 Framework - Online Skin Builder|first=Dinamenta|last=UAB|website=dhtmlx.com}}</ref>
|<!-- dhtmlx --> {{yes}}<ref>{{cite web|url=http://www.dhtmlx.com/docs/products/skinBuilder/index.shtml|title=JavaScript UI Library, Ajax Components & HTML5 Framework - Online Skin Builder|first=Dinamenta|last=UAB|website=dhtmlx.com}}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo --> {{yes}}
|<!-- Enyo --> {{yes}}
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=http://www.sencha.com/blog/2008/03/03/can-ext-be-skinned-of-course/|title=Blog|date=26 February 2015}}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=http://www.sencha.com/blog/2008/03/03/can-ext-be-skinned-of-course/|title=Blog|date=26 February 2015}}</ref>
|<!-- GWT --> {{yes}}<ref>{{cite web|url=https://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.html#StyleSheets|title=Skinning GWT controls with style sheets}}</ref>
|<!-- GWT --> {{yes}}<ref>{{cite web|url=https://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.html#StyleSheets|title=Skinning GWT controls with style sheets|access-date=17 March 2015|archive-date=12 September 2008|archive-url=https://web.archive.org/web/20080912071259/http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.html#StyleSheets|url-status=dead}}</ref>
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://jqueryui.com/themeroller|title=ThemeRoller - jQuery UI|first=JS Foundation -|last=js.foundation|website=jqueryui.com}}</ref>
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://jqueryui.com/themeroller|title=ThemeRoller - jQuery UI|first=JS Foundation -|last=js.foundation|website=jqueryui.com}}</ref>
|<!-- MochiKit -->
|<!-- MochiKit -->
Line 607: Line 579:
|<!-- pyjamas --> {{yes}}
|<!-- pyjamas --> {{yes}}
|<!-- Rico -->
|<!-- Rico -->
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- YUI -->
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| GUI resizable panels and modal dialogs
!{{rh}}| GUI resizable panels and modal dialogs
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Cash -->
|<!-- dojo --> {{yes}}
|<!-- dojo --> {{yes}}
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 629: Line 601:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- ZK --> {{yes}}<ref name="zkoss.org">{{cite web |url=http://www.zkoss.org/smalltalks/zkstudio_vedemo/ |title=A Sip of WYSIWYG Development with ZK Studio |access-date=2011-04-27 |url-status=dead |archive-url=https://web.archive.org/web/20081012063201/http://www.zkoss.org/smalltalks/zkstudio_vedemo/ |archive-date=12 October 2008 }}</ref>
|<!-- Wakanda --> {{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Dialog.300-938942.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}<ref name="zkoss.org">{{cite web |url=http://www.zkoss.org/smalltalks/zkstudio_vedemo/ |title=Archived copy |access-date=2011-04-27 |url-status=dead |archive-url=https://web.archive.org/web/20081012063201/http://www.zkoss.org/smalltalks/zkstudio_vedemo/ |archive-date=12 October 2008 |df=dmy-all }}</ref>
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| GUI page layout
!{{rh}}| GUI page layout
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- Cash -->
|<!-- dojo --> {{yes}}
|<!-- dojo --> {{yes}}
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 651: Line 623:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo -->{{yes}}
|<!-- qooxdoo -->{{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Container.300-661446.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}<ref name="zkoss.org"/>
|<!-- ZK --> {{yes}}<ref name="zkoss.org"/>
|<!-- Webix --> {{yes}} <ref>{{cite web|url=https://webix.com/widget/layout/|title=JavaScript layout library Webix for Web Apps Developers|website=webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://webix.com/widget/layout/|title=JavaScript layout library Webix for Web Apps Developers|website=webix.com}}</ref>
|-
|-
!{{rh}}| Canvas support
!{{rh}}| Canvas support
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Cash -->
|<!-- dojo -->{{yes}}<ref>[http://docs.dojocampus.org/dojox/gfx dojo.gfx] {{webarchive|url=https://web.archive.org/web/20090309234151/http://docs.dojocampus.org/dojox/gfx |date=9 March 2009 }}</ref>
|<!-- dojo -->{{yes}}<ref>[http://docs.dojocampus.org/dojox/gfx dojo.gfx] {{webarchive|url=https://web.archive.org/web/20090309234151/http://docs.dojocampus.org/dojox/gfx |date=9 March 2009 }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 669: Line 641:
|<!-- jQuery --> {{depends|With plugin}}<ref>{{cite web|url=http://calebevans.me/projects/jcanvas/index.php|title=jCanvas|website=jCanvas}}</ref>
|<!-- jQuery --> {{depends|With plugin}}<ref>{{cite web|url=http://calebevans.me/projects/jcanvas/index.php|title=jCanvas|website=jCanvas}}</ref>
|<!-- jQWidgets --> {{yes}}<ref name="jqxDraw">{{cite web |url=http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxdraw/jquery-draw-getting-started.htm |title=jQuery Draw Plugin |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref name="jqxDraw">{{cite web |url=http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxdraw/jquery-draw-getting-started.htm |title=jQuery Draw Plugin |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools -->{{yes}}<ref>{{cite web|url=http://ajaxian.com/archives/mocha-ui-mootools-canvas-ui-class|title=Mocha UI – MooTools Canvas UI class - Ajaxian|website=ajaxian.com}}</ref>
|<!-- MooTools -->{{yes}}<ref>{{cite web|url=http://ajaxian.com/archives/mocha-ui-mootools-canvas-ui-class|title=Mocha UI – MooTools Canvas UI class - Ajaxian|website=ajaxian.com|date=17 November 2015 }}</ref>
|<!-- OpenUi5 -->
|<!-- OpenUi5 -->
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->{{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Canvas.300-950231.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK --> {{yes}}<ref name="zkoss1">{{cite web|url=http://books.zkoss.org/wiki/Small_Talks/2010/June/How_To_Use_Canvas4Z|title=ZK - Leading Enterprise Ajax Solutions}}</ref>
|<!-- ZK --> {{yes}}<ref name="zkoss1">{{cite web|url=http://books.zkoss.org/wiki/Small_Talks/2010/June/How_To_Use_Canvas4Z|title=ZK - Leading Enterprise Ajax Solutions}}</ref>
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| Mobile/tablet support (touch events)
!{{rh}}| Mobile/tablet support (touch events)
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Cash -->
|<!-- dojo -->{{yes}}<ref>{{cite web|url=http://shaneosullivan.wordpress.com/2010/06/13/dojos-new-mobile-app-project/|title=Dojo's new Mobile App Project|date=13 June 2010}}</ref>
|<!-- dojo -->{{yes}}<ref>{{cite web|url=http://shaneosullivan.wordpress.com/2010/06/13/dojos-new-mobile-app-project/|title=Dojo's new Mobile App Project|date=13 June 2010}}</ref>
|<!-- Ember.js --> {{yes}}
|<!-- Ember.js --> {{yes}}
Line 691: Line 663:
|<!-- jQuery --> {{depends|With plugin}}<ref>{{cite web|url=http://www.jqtouch.com/|title=jQT|website=jQT}}</ref>
|<!-- jQuery --> {{depends|With plugin}}<ref>{{cite web|url=http://www.jqtouch.com/|title=jQT|website=jQT}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/mobiledemos/ |title=jQWidgets Mobile Demos |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/mobiledemos/ |title=jQWidgets Mobile Demos |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools -->{{depends|With plugin}}<ref>{{cite web|url=https://github.com/cpojer/mootools-mobile|title=cpojer/mootools-mobile|website=GitHub}}</ref>
|<!-- MooTools -->{{depends|With plugin}}<ref>{{cite web|url=https://github.com/cpojer/mootools-mobile|title=cpojer/mootools-mobile|website=GitHub|date=10 October 2021 }}</ref>
|<!-- OpenUi5 --> {{yes}}
|<!-- OpenUi5 --> {{yes}}
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->{{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Navigation-View.300-950872.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref><ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Split-View.300-951276.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK -->{{yes}}<ref>{{cite web|url=http://www.zkoss.org/whyzk/Features|title=ZK - Leading Enterprise Java Web Framework|website=ZK - Java Web Framework}}</ref>
|<!-- ZK -->{{yes}}<ref>{{cite web|url=http://www.zkoss.org/whyzk/Features|title=ZK - Leading Enterprise Java Web Framework|website=ZK - Java Web Framework}}</ref>
|<!-- Webix --> {{yes}}<ref>[https://webix.com/touch/] Webix mobile/tablet support</ref>
|<!-- Webix --> {{yes}}<ref>[https://webix.com/touch/] Webix mobile/tablet support</ref>
|-
|-
!{{rh}}| Accessibility / <br /> graceful degradation<ref>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.</ref>
!{{rh}}| Accessibility / <br /> graceful degradation<ref>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.</ref>
|<!-- Angular -->
|<!-- AngularJS --> {{yes}}
|<!-- AngularJS --> {{yes}}
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref name="docs.dojocampus.org">{{cite web |url=http://docs.dojocampus.org/quickstart/writingWidgets/a11y |title=Quickstart/WritingWidgets/A11y - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090406005938/http://docs.dojocampus.org/quickstart/writingWidgets/a11y |archive-date=6 April 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref name="docs.dojocampus.org">{{cite web |url=http://docs.dojocampus.org/quickstart/writingWidgets/a11y |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090406005938/http://docs.dojocampus.org/quickstart/writingWidgets/a11y |archive-date=6 April 2009 |df=dmy-all }}</ref>
|<!-- Ember.js --> {{no}}
|<!-- Ember.js --> {{no}}
|<!-- Enyo --> {{yes}}
|<!-- Enyo --> {{yes}}
Line 717: Line 689:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{no}}<ref>[http://codecorps.wordpress.com/2007/04/11/qooxdoo-funny-name-interesting-ajax-toolkit/ Qooxdoo's "Extreme JavaScript" paradigm] {{webarchive|url=https://web.archive.org/web/20081012051826/http://codecorps.wordpress.com/2007/04/11/qooxdoo-funny-name-interesting-ajax-toolkit/ |date=12 October 2008 }}</ref>
|<!-- qooxdoo --> {{no}}<ref>[http://codecorps.wordpress.com/2007/04/11/qooxdoo-funny-name-interesting-ajax-toolkit/ Qooxdoo's "Extreme JavaScript" paradigm] {{webarchive|url=https://web.archive.org/web/20081012051826/http://codecorps.wordpress.com/2007/04/11/qooxdoo-funny-name-interesting-ajax-toolkit/ |date=12 October 2008 }}</ref>
|<!-- React -->
|<!-- SproutCore -->{{partial| Degradation: No<br />Accessibility: Yes}}
|<!-- SproutCore -->{{partial| Degradation: No<br />Accessibility: Yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__accessibility.html|title=Accessibility of Guides, Designing User Interface Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__accessibility.html|title=Accessibility of Guides, Designing User Interface Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!{{rh}}| [[WAI-ARIA|ARIA]] compliant
!{{rh}}| [[WAI-ARIA|ARIA]] compliant
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref name="docs.dojocampus.org"/>
|<!-- dojo --> {{yes}}<ref name="docs.dojocampus.org"/>
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 739: Line 711:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{No}}
|<!-- qooxdoo --> {{No}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}} <ref>{{cite web|url=https://docs.webix.com/desktop__accessibility.html#waiariaattributes|title=Accessibility of Guides, Designing User Interface Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://docs.webix.com/desktop__accessibility.html#waiariaattributes|title=Accessibility of Guides, Designing User Interface Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!{{rh}}| Developer tools, Visual design
!{{rh}}| Developer tools, Visual design
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>[[Wavemaker]]</ref><ref>[[Aptana]] Studio</ref>
|<!-- dojo --> {{yes}}<ref>[[Wavemaker]]</ref><ref>[[Aptana]] Studio</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo --> {{yes|in progress}}<ref>{{cite web |url=http://developer.palm.com/blog/2012/04/april-code-releases-for-open-webos/ |title=Archived copy |access-date=2012-08-05 |url-status=dead |archive-url=https://web.archive.org/web/20120709053821/http://developer.palm.com/blog/2012/04/april-code-releases-for-open-webos/ |archive-date=9 July 2012 |df=dmy-all }}</ref>
|<!-- Enyo --> {{yes|in progress}}<ref>{{cite web |url=http://developer.palm.com/blog/2012/04/april-code-releases-for-open-webos/ |title=HP webOS Developer Blog |access-date=2012-08-05 |url-status=dead |archive-url=https://web.archive.org/web/20120709053821/http://developer.palm.com/blog/2012/04/april-code-releases-for-open-webos/ |archive-date=9 July 2012 }}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=http://www.sencha.com/products/designer/|title=Sencha Architect|date=25 March 2015}}</ref><ref>{{cite web|url=http://www.sencha.com/blog/2008/04/07/spket-ide-1611-released-includes-new-ext-theme-builder/|title=Blog|date=26 February 2015}}</ref><ref>{{cite web|url=http://www.sencha.com/products/js/build/|title=Sencha Ext JS|date=5 Nov 2020}}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=http://www.sencha.com/products/designer/|title=Sencha Architect|date=25 March 2015}}</ref><ref>{{cite web|url=http://www.sencha.com/blog/2008/04/07/spket-ide-1611-released-includes-new-ext-theme-builder/|title=Blog|date=26 February 2015}}</ref><ref>{{cite web|url=http://www.sencha.com/products/js/build/|title=Sencha Ext JS|date=5 November 2020}}</ref>
|<!-- GWT --> {{yes}}
|<!-- GWT --> {{yes}}
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://netbeans.org/kb/docs/web/js-toolkits-jquery.html|title=Using jQuery to Enhance the Appearance and Usability of a Web Page - NetBeans Tutorial|first=lloyd.dunn @ sun.com|[email protected]|website=netbeans.org}}</ref><ref>{{cite web|url=http://api.jquery.com/|title=jQuery API Documentation|first=JS Foundation -|last=js.foundation|website=api.jquery.com}}</ref>
|<!-- jQuery --> {{yes}}<ref>{{cite web|url=http://netbeans.org/kb/docs/web/js-toolkits-jquery.html|title=Using jQuery to Enhance the Appearance and Usability of a Web Page - NetBeans Tutorial|first=lloyd.dunn @ sun.com|[email protected]|website=netbeans.org|access-date=9 February 2010|archive-date=12 July 2017|archive-url=https://web.archive.org/web/20170712052659/https://netbeans.org/kb/docs/web/js-toolkits-jquery.html|url-status=dead}}</ref><ref>{{cite web|url=http://api.jquery.com/|title=jQuery API Documentation|first=JS Foundation -|last=js.foundation|website=api.jquery.com}}</ref>
|<!-- jQWidgets --> {{yes}}<ref name="jQWidgetsThemeBuilder">{{cite web |url=http://www.jqwidgets.com/themebuilder/ |title=Theme Builder for jQWidgets |website=jqwidgets.com |access-date=2015-12-17}}</ref><ref>{{cite web |url=https://www.jqwidgets.com/chartstudio/ |title=ßeta - jQWidgets Charts Studio |website=jqwidgets.com |access-date=2015-12-17}}</ref><ref>{{cite web |url=https://www.jqwidgets.com/jseditor/ |title=JSEditor |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref name="jQWidgetsThemeBuilder">{{cite web |url=http://www.jqwidgets.com/themebuilder/ |title=Theme Builder for jQWidgets |website=jqwidgets.com |access-date=2015-12-17}}</ref><ref>{{cite web |url=https://www.jqwidgets.com/chartstudio/ |title=ßeta - jQWidgets Charts Studio |website=jqwidgets.com |access-date=2015-12-17}}</ref><ref>{{cite web |url=https://www.jqwidgets.com/jseditor/ |title=JSEditor |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools --> {{yes}}<ref>{{cite web|url=http://mootools.net/docs/core|title=MooTools-core Documentation|access-date=14 October 2009|archive-url=https://web.archive.org/web/20091002162608/http://mootools.net/docs/core|archive-date=2 October 2009|url-status=dead|df=dmy-all}}</ref><ref>{{cite web|url=http://mootools.net/docs/more|title=MooTools-more Document|access-date=14 October 2009|archive-url=https://web.archive.org/web/20091004112249/http://www.mootools.net/docs/more|archive-date=4 October 2009|url-status=dead|df=dmy-all}}</ref>
|<!-- MooTools --> {{yes}}<ref>{{cite web|url=http://mootools.net/docs/core|title=MooTools-core Documentation|access-date=14 October 2009|archive-url=https://web.archive.org/web/20091002162608/http://mootools.net/docs/core|archive-date=2 October 2009|url-status=dead}}</ref><ref>{{cite web|url=http://mootools.net/docs/more|title=MooTools-more Document|access-date=14 October 2009|archive-url=https://web.archive.org/web/20091004112249/http://www.mootools.net/docs/more|archive-date=4 October 2009|url-status=dead}}</ref>
|<!-- OpenUi5 -->
|<!-- OpenUi5 -->
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}<ref>[http://qooxdoo.org/about/framework Custom build, JS Linker, API generation, Unit test framework, etc.] {{webarchive|url=https://web.archive.org/web/20080725201346/http://qooxdoo.org/about/framework |date=25 July 2008 }}</ref>
|<!-- qooxdoo --> {{yes}}<ref>[http://qooxdoo.org/about/framework Custom build, JS Linker, API generation, Unit test framework, etc.] {{webarchive|url=https://web.archive.org/web/20080725201346/http://qooxdoo.org/about/framework |date=25 July 2008 }}</ref>
|<!-- React -->
|<!-- SproutCore --> {{no}}
|<!-- SproutCore --> {{no}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->{{yes}}<ref>{{cite web|url=http://www.wakanda.org/features/studio|title=Wakanda FullStack JavaScript Platform|first=Wakanda|last=SAS|website=Wakanda FullStack JavaScript Platform|access-date=20 March 2012|archive-url=https://web.archive.org/web/20120314180109/http://www.wakanda.org/features/studio|archive-date=14 March 2012|url-status=dead}}</ref>
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{Yes}}<ref>{{cite web|url=https://webix.com/skin-builder/|title=Webix Skin Builder|website=webix.com}}</ref><ref>{{cite web|url=https://webix.com/form-builder/|title=Formbuilder|website=webix.com}}</ref>
|<!-- Webix --> {{Yes}}<ref>{{cite web|url=https://webix.com/skin-builder/|title=Webix Skin Builder|website=webix.com}}</ref><ref>{{cite web|url=https://webix.com/form-builder/|title=Formbuilder|website=webix.com}}</ref>
|-
|-
!{{rh}}| Offline storage<ref>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 [https://code.google.com/apis/gears/design.html Gears Getting Started Guide].</ref>
!{{rh}}| Offline storage<ref>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 [https://code.google.com/apis/gears/design.html Gears Getting Started Guide].</ref>
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Cash -->
|<!-- dojo --> {{no}}<ref>[http://o.dojotoolkit.org/offline o.DojoToolkit.Org/offline] {{webarchive|url=https://web.archive.org/web/20100210190309/http://o.dojotoolkit.org/offline |date=10 February 2010 }} says "Dojo Offline is no longer supported after Dojo 1.3"</ref>
|<!-- dojo --> {{no}}<ref>[http://o.dojotoolkit.org/offline o.DojoToolkit.Org/offline] {{webarchive|url=https://web.archive.org/web/20100210190309/http://o.dojotoolkit.org/offline |date=10 February 2010 }} says "Dojo Offline is no longer supported after Dojo 1.3"</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 777: Line 749:
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=http://docs.sencha.com/extjs/latest/|title=Ext JS 7.3.0 - Sencha Docs|website=docs.sencha.com}}</ref>
|<!-- ExtJS --> {{yes}}<ref>{{cite web|url=http://docs.sencha.com/extjs/latest/|title=Ext JS 7.3.0 - Sencha Docs|website=docs.sencha.com}}</ref>
|<!-- GWT --> {{depends| Via [[Google Gears]]}}<ref>{{cite web|url=https://code.google.com/p/gwt-google-apis/|title=googlearchive/gwt-google-apis|website=GitHub|date=24 April 2021}}</ref>
|<!-- GWT --> {{depends| Via [[Google Gears]]}}<ref>{{cite web|url=https://code.google.com/p/gwt-google-apis/|title=googlearchive/gwt-google-apis|website=GitHub|date=24 April 2021}}</ref>
|<!-- jQuery --> {{depends|With plugin}}<ref>{{cite web|url=https://sites.google.com/site/daveschindler/jquery-html5-storage-plugin/|title=jQuery HTML5 Storage plugin - daveschindler|website=sites.google.com}}</ref>
|<!-- jQuery --> {{depends|With plugin}}<ref>{{cite web|url=https://sites.google.com/site/daveschindler/jquery-html5-storage-plugin/|title=jQuery HTML5 Storage plugin - daveschindler|website=sites.google.com|access-date=15 October 2012|archive-date=4 March 2017|archive-url=https://web.archive.org/web/20170304153125/https://sites.google.com/site/daveschindler/jquery-html5-storage-plugin/|url-status=dead}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/saveloadstate.htm?arctic |title=This example shows how to Save/Load the Grid's state. |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- jQWidgets --> {{yes}}<ref>{{cite web |url=http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/saveloadstate.htm?arctic |title=This example shows how to Save/Load the Grid's state. |website=jqwidgets.com |access-date=2015-12-17}}</ref>
|<!-- MooTools -->
|<!-- MooTools -->
|<!-- OpenUi5 -->
|<!-- Yes -->
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo --> {{yes}}
|<!-- qooxdoo --> {{yes}}
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> planned
|<!-- ZK --> {{yes}}
|<!-- ZK --> {{yes}}
|<!-- Webix --> {{yes}}
|<!-- Webix --> {{yes}}
|-
|-
!{{rh}}| Cross-browser 2d Vector Graphics<ref>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</ref>
!{{rh}}| Cross-browser 2d Vector Graphics<ref>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</ref>
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale -->
|<!-- Apache Royale -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/gfx |title=Dojox/GFX - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090309234151/http://docs.dojocampus.org/dojox/gfx |archive-date=9 March 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/gfx |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090309234151/http://docs.dojocampus.org/dojox/gfx |archive-date=9 March 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
Line 805: Line 777:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo -->
|<!-- qooxdoo -->
|<!-- SproutCore --> {{no}}]
|<!-- React -->
|<!-- SproutCore --> {{no}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}} (via Raphael)
|<!-- ZK --> {{yes}}<ref name="zkoss1"/>
|<!-- ZK --> {{yes}}<ref name="zkoss1"/>
|<!-- Webix --> {{yes}} (via Raphael)<ref>{{cite web|url=https://docs.webix.com/desktop__chart_integration.html#raphaeumllcharts|title=Chart Integration - Third-party charts integration guide. Webix Docs|website=docs.webix.com}}</ref>
|<!-- Webix --> {{yes}} (via Raphael)<ref>{{cite web|url=https://docs.webix.com/desktop__chart_integration.html#raphaeumllcharts|title=Chart Integration - Third-party charts integration guide. Webix Docs|website=docs.webix.com}}</ref>
|-
|-
!{{rh}}| Charting & Dashboard<ref>Some JavaScript libraries include widgets for Charts, Gauges, and other data visualizations.</ref>
!{{rh}}| Charting & Dashboard<ref>Some JavaScript libraries include widgets for Charts, Gauges, and other data visualizations.</ref>
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/charting |title=Dojox/Charting - DojoCampus - Docs |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090303111929/http://docs.dojocampus.org/dojox/charting |archive-date=3 March 2009 }}</ref>
|<!-- Cash -->
|<!-- dojo --> {{yes}}<ref>{{cite web |url=http://docs.dojocampus.org/dojox/charting |title=Archived copy |access-date=2009-04-23 |url-status=dead |archive-url=https://web.archive.org/web/20090303111929/http://docs.dojocampus.org/dojox/charting |archive-date=3 March 2009 |df=dmy-all }}</ref>
|<!-- Ember.js -->
|<!-- Ember.js -->
|<!-- Enyo -->
|<!-- Enyo -->
Line 827: Line 799:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo -->
|<!-- qooxdoo -->
|<!-- React -->
|<!-- SproutCore --> {{no}}
|<!-- SproutCore --> {{no}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda --> {{yes}}<ref>{{cite web|url=http://doc.wakanda.org/Wakanda-Studio-Reference-Guide/GUI-Designer/Chart.300-726286.en.html|title=Wakanda Doc Center|website=doc.wakanda.org}}</ref>
|<!-- ZK -->{{yes}}<ref>{{cite web|url=http://www.zkoss.org/zkdemo/chart|title=ZK Live Demo - Other Charts|website=Live Demo - ZK Web Application Framework}}</ref>
|<!-- ZK -->{{yes}}<ref>{{cite web|url=http://www.zkoss.org/zkdemo/chart|title=ZK Live Demo - Other Charts|website=Live Demo - ZK Web Application Framework}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://webix.com/widget/charts/|title=JavaScript Charts UI Widget - Webix JS Charts|website=webix.com}}</ref>
|<!-- Webix --> {{yes}}<ref>{{cite web|url=https://webix.com/widget/charts/|title=JavaScript Charts UI Widget - Webix JS Charts|website=webix.com}}</ref>
|-
|-
!{{rh}}| RTL Support in UI Components
!{{rh}}| RTL Support in UI Components
|<!-- Angular -->
|<!-- AngularJS -->
|<!-- AngularJS -->
|<!-- Apache Royale --> {{yes}}
|<!-- Apache Royale --> {{yes}}
|<!-- Cash -->
|<!-- dojo --> {{yes}}
|<!-- dojo --> {{yes}}
|<!-- Ember.js -->
|<!-- Ember.js -->
Line 849: Line 821:
|<!-- proto -->
|<!-- proto -->
|<!-- qooxdoo -->
|<!-- qooxdoo -->
|<!-- React -->
|<!-- SproutCore --> {{yes}}
|<!-- SproutCore --> {{yes}}
|<!-- Svelte -->
|<!-- Svelte -->
|<!-- Vue -->
|<!-- Vue -->
|<!-- Wakanda -->
|<!-- ZK -->
|<!-- ZK -->
|<!-- Webix --> {{no}}
|<!-- Webix --> {{no}}
|-
!
![[Angular (web framework)|Angular]]
![[AngularJS]]
![[Apache Royale]]
![[Dojo Toolkit|Dojo]]
![[Ember.js]]
![[Enyo (software)|Enyo]]
![[Ext (JavaScript library)|ExtJS]]
![[Google Web Toolkit]]
![[jQuery]]
![[jQWidgets]]
![[MooTools]]
![[OpenUI5]]
![[Prototype JavaScript Framework|Prototype]] & [[script.aculo.us|script. aculo.us]]<ref name="addon" />
![[qooxdoo]]
![[React (JavaScript library)|React]]
![[SproutCore]]
![[Svelte]]
![[Vue.js|Vue]]
![[ZK Framework|ZK]]
![[Webix]]
|}
|}



==Browser support==
==Browser support==
Line 863: Line 856:
!Framework
!Framework
![[Internet Explorer]]
![[Internet Explorer]]
![[Mozilla Firefox]]
![[Firefox|Mozilla Firefox]]
![[Safari (web browser)|Safari]]
![[Safari (web browser)|Safari]]
![[Opera (web browser)|Opera]]
![[Opera (web browser)|Opera]]
![[Chromium (software)|Chrome]]
![[Chromium (web browser)|Chrome]]
![[Microsoft Edge|Edge]]
![[Microsoft Edge|Edge]]
|-
!{{rh}}|[[Angular (web framework)|Angular]]
|<!-- MSIE -->
|<!-- Firefox --> Latest and extended support release
|<!-- Safari --> 2 most recent major versions
|<!-- Opera -->
|<!-- Chrome --> Latest and previous stable version
|<!-- Edge --> 2 most recent major versions
|-
|-
!{{rh}}|[[AngularJS]] (1.3)
!{{rh}}|[[AngularJS]] (1.3)
Line 884: Line 885:
|<!-- Chrome --> 23
|<!-- Chrome --> 23
|<!-- Edge -->
|<!-- Edge -->
|-
!{{rh}}|Cash
|<!-- MSIE --> 11+
|<!-- Firefox --> 21+
|<!-- Safari --> 6+
|<!-- Opera --> 15+
|<!-- Chrome --> 23+
|<!-- Edge --> 12+
|-
|-
!{{rh}}|[[Dojo Toolkit|Dojo]]
!{{rh}}|[[Dojo Toolkit|Dojo]]
|<!-- MSIE --> 6+
|<!-- MSIE --> 6+
|<!-- Firefox --> 3+<ref name="ReferenceA">{{cite web |url=http://docs.dojocampus.org/releasenotes/1.4 |title=Archived copy |access-date=2009-12-17 |url-status=dead |archive-url=https://web.archive.org/web/20100208101206/http://docs.dojocampus.org/releasenotes/1.4 |archive-date=8 February 2010 |df=dmy-all }}</ref>
|<!-- Firefox --> 3+<ref name="ReferenceA">{{cite web |url=http://docs.dojocampus.org/releasenotes/1.4 |title=Releasenotes/1.4 - DojoCampus - Docs |access-date=2009-12-17 |url-status=dead |archive-url=https://web.archive.org/web/20100208101206/http://docs.dojocampus.org/releasenotes/1.4 |archive-date=8 February 2010 }}</ref>
|<!-- Safari --> 4<ref name="ReferenceA"/>
|<!-- Safari --> 4<ref name="ReferenceA"/>
|<!-- Opera --> 10.50+<ref name="ReferenceA"/>
|<!-- Opera --> 10.50+<ref name="ReferenceA"/>
Line 910: Line 903:
|-
|-
!{{rh}}|[[Enyo (software)|Enyo]]
!{{rh}}|[[Enyo (software)|Enyo]]
|<!-- MSIE --> 8+<ref name="platforms.enyojs.com">{{cite web |url=http://enyojs.com/docs/platforms |title=Archived copy |access-date=2012-07-26 |url-status=dead |archive-url=https://web.archive.org/web/20120723164041/http://enyojs.com/docs/platforms/ |archive-date=23 July 2012 |df=dmy-all }}</ref>
|<!-- MSIE --> 8+<ref name="platforms.enyojs.com">{{cite web |url=http://enyojs.com/docs/platforms |title=Supported Platforms &#124; Enyo JS |access-date=2012-07-26 |url-status=dead |archive-url=https://web.archive.org/web/20120723164041/http://enyojs.com/docs/platforms/ |archive-date=23 July 2012 }}</ref>
|<!-- Firefox --> >4<ref name="platforms.enyojs.com"/>
|<!-- Firefox --> >4<ref name="platforms.enyojs.com"/>
|<!-- Safari --> >5<ref name="platforms.enyojs.com"/>
|<!-- Safari --> >5<ref name="platforms.enyojs.com"/>
Line 922: Line 915:
|<!-- Safari --> 11+
|<!-- Safari --> 11+
|<!-- Opera --> 43+
|<!-- Opera --> 43+
|<!-- Chrome --> 64+<ref>{{cite web|url=http://www.sencha.com/products/extjs/|title=Sencha Ext JS|date=5 Nov 2020}}</ref>
|<!-- Chrome --> 64+<ref>{{cite web|url=http://www.sencha.com/products/extjs/|title=Sencha Ext JS|date=5 November 2020}}</ref>
|<!-- Edge -->
|<!-- Edge -->
|-
|-
Line 971: Line 964:
|<!-- Opera --> 9+
|<!-- Opera --> 9+
|<!-- Chrome --> 2+
|<!-- Chrome --> 2+
|<!-- Edge -->
|-
!{{rh}}|[[React (JavaScript library)|React]]
|<!-- MSIE -->
|<!-- Firefox -->
|<!-- Safari -->
|<!-- Opera -->
|<!-- Chrome -->
|<!-- Edge -->
|<!-- Edge -->
|-
|-
Line 1,005: Line 1,006:
|<!-- Chrome -->23+
|<!-- Chrome -->23+
|<!-- Edge -->12+
|<!-- Edge -->12+
|-
!{{rh}}|[[Wakanda (software)|Wakanda]]
|<!-- MSIE --> 9+
|<!-- Firefox --> 4+
|<!-- Safari --> 5+
|<!-- Opera -->
|<!-- Chrome --> 11+
|<!-- Edge -->
|-
|-
!{{rh}}|[[ZK Framework|ZK]]
!{{rh}}|[[ZK Framework|ZK]]
Line 1,038: Line 1,031:
{{JavaScript}}
{{JavaScript}}


{{DEFAULTSORT:Comparison Of Javascript Frameworks}}
{{DEFAULTSORT:Comparison of Javascript Frameworks}}
[[Category:JavaScript libraries|*]]
[[Category:JavaScript libraries|*]]
[[Category:Software comparisons|JavaScript frameworks]]
[[Category:Software comparisons|JavaScript frameworks]]

Latest revision as of 21:32, 20 May 2024

This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.

General information[edit]

Framework Version compared Size License Source language
Angular 14.0.4
29 June 2022
563 kB (minified & compressed) MIT TypeScript
AngularJS 1.5.0
5 Feb 2016
144 kB (minified & compressed) MIT JavaScript
Apache Royale 0.9.4
5 Nov 2018
19 kB (zipped) Apache ActionScript 3, MXML, CSS
Backbone.js 1.2.1
June 2015
7.3 kB (Packed and gzipped) MIT JavaScript
Dojo 1.10.4
18 Jan 2015
Variable.
Base size:
41 kB (minified & gzipped),
155 kB (minified),
598 kB (uncompressed)[1]
BSD & AFL JavaScript + HTML
Ember.js 1.7.0
19 Aug 2014
95 kB (minified & gzipped),
340 kB (minified),
1.5 MB (uncompressed)
MIT JavaScript
Enyo 2.0.1
30 Aug 2012
<25 kB (core gzipped) Apache 2[2] JavaScript
Ext JS 7.3
15 Sept, 2020
84–502 kB GPL & Commercial[3] JavaScript
Google Web Toolkit 2.10.0
June 2022
Variable Apache Java
jQuery (library) 3.6.0
3 Mar 2021
70.7KB (slim, minified),
87.4KB (minified),[4]
282 KiB (uncompressed)[4]
MIT JavaScript
jQWidgets 3.9.1
29 Oct 2015
3102 KB (minified),
7486 KB (uncompressed)
Creative Commons Attribution-NonCommercial 3.0 and Commercial[5] JavaScript, HTML, CSS
Knockout 3.5.0
22 February 2019
66.4 KB minified / 309 KB (development mode) MIT JavaScript
MooTools 1.6.0
14 Jan 2016
Variable;
7.3–65 KiB (YUI Compressor),[6]


Variable;
7.3–65 KiB (YUI Compressor),[7]
101 KiB (uncompressed)[8]

MIT JavaScript
Prototype & script. aculo.us[9] Prototype: 1.7.3
22 Sep 2015
script.aculo.us: 1.9.0
23 Dec 2010
46–278 kB MIT JavaScript
qooxdoo 5.0.1
15 Sep 2015
Variable, starting at 6 kB (gzipped) LGPL & EPL JavaScript
React 18.2.0
14 June 2022

react.production.min.js 6.41KB

react-dom.production.min.js 92.4KB

Total: 98.81KB

MIT JavaScript / TypeScript
SAP OpenUI5 1.102.1
15 Jun 2022
Variable, starting at 213 kB (gzipped) Apache 2[10] JavaScript
SproutCore 1.11.2
2 May 2016
250–700 kB (gzipped). MIT JavaScript
Svelte 3.12.1
14 Oct 2019
Variable MIT JavaScript
Vue.js 2.6.10
20 Mar 2019
33.5 KB (minified & gzipped)

91.48 KB (minified)[11]

333.46 KB (uncompressed)[11]

MIT JavaScript / TypeScript
Webix 4.1
November 2016
188 kB (gzipped) GPL & Commercial[12] JavaScript
ZK 8.0.1
19 Jan 2016
Variable LGPL & GPL & ZOL[13] XML + Java (JavaScript optional)

Features[edit]

Angular AngularJS Apache Royale Dojo Ember.js Enyo Ext JS Google Web Toolkit jQuery jQWidgets MooTools OpenUI5 Prototype & script. aculo.us[9] qooxdoo React SproutCore Svelte Vue ZK Webix
Feature detection[14] Yes Yes[15] Yes Yes[16] No[17][18] Yes[19] Yes Yes[20] No[21] Yes Yes No Yes
DOM wrapped[22] Yes Yes No Yes Yes Yes Yes No[23] No[24][25] Yes No Yes Yes
XMLHttpRequest
data retrieval
Yes Yes Yes[26] Yes Yes Yes Yes Yes[27] Yes[28] Yes Yes Yes Yes Yes
WebSocket Yes[26] Yes Yes Yes Yes No Yes[28] Yes[29] Yes Yes Via Plugin Yes[30]
Server push data retrieval Yes[31] Yes[32] Yes[33] Yes[31] No Via Plugin Yes[34] Yes
Other data retrieval Yes: XML, HTML, CSV, ATOM, AMF, JSON Yes: XML, HTML, CSV, ATOM[35] Yes: XML, SOAP, AMF, Ext.Direct Yes: RPC, RequestFactory Yes: XML, HTML Yes: XML, JSON, CSV, TSV[27] Yes: XML, HTML Yes: XML, HTML, CS, JSON, JSArray, CSV
Drag and drop Yes Yes[36] Yes With plugin[37] With plugins[38] Yes[39] Yes[40] Yes[41] Yes Yes Yes Yes Yes[42]
Simple visual effects Yes Yes Yes[43] Yes Yes Yes Yes Yes Yes[44] Yes Yes Yes Yes[45] Yes Yes
Animation /
advanced visual effects
Yes Yes[46] Yes[47] Yes Yes Yes Yes Yes[48] Yes Yes Yes[45] Yes Yes[49]
Back button support /
history management
Yes[50] Yes Yes[51] Yes[52] Yes With plugins[53] No With plugin[54] Yes Yes Yes Yes Yes
Input form widgets & validation Yes Yes Yes[55] Yes Yes Yes, Validation requires plugin[56] With plugins[57] Yes[58] Yes Yes Yes Yes Yes Yes Yes[59][60]
Angular AngularJS Apache Royale Dojo Ember.js Enyo ExtJS Google Web Toolkit jQuery jQWidgets MooTools OpenUI5 Prototype & script. aculo.us[9] qooxdoo React SproutCore Svelte Vue ZK Webix
Grid Yes Yes[61] Yes Yes With plugins[62] Yes[63] With plugin[64] Yes Yes Yes Yes Yes[65]
Hierarchical Tree Yes Yes[66] Yes[67] Yes[68] Yes With plugins[69] Yes[70] With plugins[71] Yes Yes[72] Yes Yes Yes[73]
Rich text editor No Yes Yes[74] Yes[75] Yes With plugins[76] Yes[77] Yes[78] Yes Via plugin Yes Yes[79]
Autocompletion tools No Yes[80] Yes Yes Yes[81] Yes[82] With plugin[83] Yes With plugins Yes Yes
HTML generation tools No Yes[84] Yes Yes Yes Yes[77] Yes[85] Yes Yes Yes Yes Yes
Widgets themeable / skinnable Yes Yes[86] Yes Yes[87] Yes[88] Yes[89] Yes Yes Yes Yes Yes Yes
GUI resizable panels and modal dialogs Yes Yes Yes Yes[90] Yes With plugins Yes[91] Yes[92] Yes Yes Yes[93] Yes
GUI page layout Yes Yes Yes With plugin[94] Yes[95][96] Yes[92] Yes Yes Yes[93] Yes[97]
Canvas support Yes Yes[98] Yes Yes Yes With plugin[99] Yes[100] Yes[101] Yes Yes Yes[102] Yes
Mobile/tablet support (touch events) Yes Yes Yes[103] Yes Yes Yes With plugin[104] With plugin[105] Yes[106] With plugin[107] Yes Yes Yes Yes[108] Yes[109]
Accessibility /
graceful degradation[110]
Yes Yes[111] No Yes Yes[16] Yes[112] Yes Yes[113] Yes No[114] Degradation: No
Accessibility: Yes
Yes Yes[115]
ARIA compliant Yes[111] Yes[16] Yes[116] Yes[113] Yes No Yes Yes Yes[117]
Developer tools, Visual design Yes[118][119] in progress[120] Yes[121][122][123] Yes Yes[124][125] Yes[126][127][128] Yes[129][130] Yes[131] No Yes Yes[132][133]
Offline storage[134] Yes No[135] Yes Yes[136] Via Google Gears[137] With plugin[138] Yes[139] Yes Yes Yes Yes
Cross-browser 2d Vector Graphics[140] Yes[141] Yes With plugin[142] Yes[100] Yes[143] No Yes[102] Yes (via Raphael)[144]
Charting & Dashboard[145] Yes Yes[146] Yes[147] With plugin[148][149] Yes[150][151] No Yes[152] Yes[153]
RTL Support in UI Components Yes Yes Yes Depends on the plugin used Yes[113] Yes Yes No
Angular AngularJS Apache Royale Dojo Ember.js Enyo ExtJS Google Web Toolkit jQuery jQWidgets MooTools OpenUI5 Prototype & script. aculo.us[9] qooxdoo React SproutCore Svelte Vue ZK Webix

Browser support[edit]

Framework Internet Explorer Mozilla Firefox Safari Opera Chrome Edge
Angular Latest and extended support release 2 most recent major versions Latest and previous stable version 2 most recent major versions
AngularJS (1.3) 8+ (9+) 4+ 5+ 11+ 30+
Apache Royale 9 (Edge --> 10) 21 6 15 23
Dojo 6+ 3+[154] 4[154] 10.50+[154] 3[154]
Ember.js 6+ 3+ 4+ 10.6+ 14+
Enyo 8+[155] >4[155] >5[155] >10[155]
Ext JS 8+ 45+ 11+ 43+ 64+[156]
Google Web Toolkit 8+ 1+ 5+ 9+ 1+
jQuery (3.x) 6+ (9+)[157] 2+[157] 3+[157] 9+[157] 1+[157]
jQWidgets 7+[158] 2+[158] 3+[158] 9+[158] 1+[158]
MooTools 6+ 2+ 3+ 9+ 1+
Prototype & script. aculo.us[9] 6+ 1.5+ 2.0.4+ 9.25+ 1+ (starting with 1.6.1RC3)
qooxdoo 6+ 2+ 3+ 9+ 2+
React
SAP OpenUI5[159] 11+ Latest Stable and ESR Last 2 Latest Version
SproutCore 6+ 3+ 4+ 9+ 1+
Svelte 21+ 6+ 15+ 23+ 12+
Vue 10+ 21+ 6+ 15+ 23+ 12+
ZK 6+ 2.0+ 3+ 9+ 2+
Webix 8+[160] 3+[160] 4+[160] 9+[160] 1+[160]

Notes[edit]

  1. ^ Dojo Base Archived 28 November 2009 at the Wayback Machine
  2. ^ "About Enyo JS". enyojs.com. Retrieved 23 November 2014.
  3. ^ "Ext JS 7.3.0 Licensing". sencha.com. Archived from the original on 9 January 2011. Retrieved 5 November 2020.
  4. ^ a b "jQuery Core - All Versions". jQuery. jQuery. Archived from the original on 9 August 2013. Retrieved 22 March 2021.
  5. ^ "License - Javascript, HTML5, jQuery Widgets". jqwidgets.com. Retrieved 17 December 2015.
  6. ^ "MooTools Core Builder". mootools.net.
  7. ^ "MooTools More Builder". mootools.net.
  8. ^ "MooTools Core". mootools.net.
  9. ^ a b c d e script.aculo.us is an add-on to Prototype.
  10. ^ "OpenUI5". GitHub. Retrieved 22 December 2020.
  11. ^ a b "vue CDN files". cdn.jsdelivr. JSDelivr. Retrieved 23 April 2019.
  12. ^ "JavaScript UI Components Library Webix - Licenses". webix.com. Retrieved 1 June 2022.
  13. ^ "ZK - Leading Enterprise Java Web Framework". ZK - Java Web Framework. Retrieved 1 June 2022.
  14. ^ 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 Archived 10 July 2017 at the Wayback Machine
  15. ^ "dojo/has – The Dojo Toolkit - Reference Guide". dojotoolkit.org.
  16. ^ a b c "Ext JS 7.3.0 - Sencha Docs". docs.sencha.com.
  17. ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com.
  18. ^ "Google Groups". google.com.[permanent dead link]
  19. ^ jquery.org, jQuery Foundation -. "jQuery 1.3 Released - Official jQuery Blog". docs.jquery.com.
  20. ^ "MooTools Blog: MooTools Core 1.3 Stable and MooTools More 1.3RC". mootools.net.
  21. ^ Feature detection all the way Archived 21 April 2009 at the Wayback Machine
  22. ^ kangax (5 April 2010). "What's wrong with extending the DOM". Retrieved 6 April 2010.
  23. ^ "MooTools Core Documentation". mootools.net.
  24. ^ "Prototype API Documentation - Element (Deprecated URL)". prototypejs.org.
  25. ^ "Prototype 2.0 will not extend the DOM - Ajaxian". ajaxian.com. 17 November 2015.
  26. ^ a b AJAX and Dojo Archived 9 February 2010 at the Wayback Machine
  27. ^ a b "jQuery Data Adapter". jqwidgets.com. Retrieved 17 December 2015.
  28. ^ a b "MooTools Core Documentation". mootools.net.
  29. ^ Schäfer, Holger (25 January 2014). "OpenUI5 Developer: Simple chat server example using UI5 WebSocket".
  30. ^ "WebSockets (Faye) of Guides, Interacting with the Server Side Webix Docs". docs.webix.com. Archived from the original on 3 August 2018. Retrieved 25 November 2016.
  31. ^ a b "CometD JavaScript | cometd.org". Archived from the original on 19 September 2010. Retrieved 7 October 2010.
  32. ^ "kembuco/extjs-cometd". GitHub. 8 July 2020.
  33. ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com.
  34. ^ "ZK - Leading Enterprise Ajax Solutions".
  35. ^ "Dojox/Data - DojoCampus - Docs". Archived from the original on 17 March 2009. Retrieved 23 April 2009.
  36. ^ "Dojo/DND - DojoCampus - Docs". Archived from the original on 6 April 2009. Retrieved 23 April 2009.
  37. ^ "fredsa/gwt-dnd". GitHub. 8 February 2022.
  38. ^ js.foundation, JS Foundation -. "Draggable - jQuery UI". jqueryui.com.
  39. ^ "jQuery DragDrop Plugin". jqwidgets.com. Retrieved 17 December 2015.
  40. ^ "MooTools More Documentation". mootools.net.
  41. ^ "OpenUI5 SDK - Demo Kit v2.0". openui5.hana.ondemand.com.
  42. ^ "Drag-and-Drop Support of UI Widgets, Tree Webix Docs". docs.webix.com.
  43. ^ "Dojo/Fx - DojoCampus - Docs". Archived from the original on 16 April 2009. Retrieved 23 April 2009.
  44. ^ "MooTools Core Documentation". mootools.net.
  45. ^ a b "Showcase". showcase.sproutcore.com.
  46. ^ "Dojox/Fx - DojoCampus - Docs". Archived from the original on 4 March 2009. Retrieved 23 April 2009.
  47. ^ "Enyo API Reference". enyojs.com. Archived from the original on 20 December 2013. Retrieved 1 August 2012.
  48. ^ "MooTools Core Documentation". mootools.net.
  49. ^ "Animation of Guides, Styling and Animation Webix Docs". docs.webix.com.
  50. ^ "Dojo/Back - DojoCampus - Docs". Archived from the original on 2 April 2009. Retrieved 23 April 2009.
  51. ^ "Enyo API Viewer". enyojs.com. Archived from the original on 24 March 2016. Retrieved 24 April 2014.
  52. ^ "Since v2.2". Archived from the original on 29 December 2010. Retrieved 11 September 2010.
  53. ^ Asual. "Asual". asual.com.
  54. ^ "cpojer/mootools-history". GitHub. 10 October 2021.
  55. ^ "Dijit/Form - DojoCampus - Docs". Archived from the original on 3 April 2009. Retrieved 23 April 2009.
  56. ^ "Input Validation with GWT". Archived from the original on 20 July 2011. Retrieved 11 October 2018.
  57. ^ js.foundation, JS Foundation -. "jQuery Plugin Registry". plugins.jquery.com.
  58. ^ "jQuery Validator". jqwidgets.com. Retrieved 17 December 2015.
  59. ^ "Data Validation of Guides, Managing Data in a Component Webix Docs". docs.webix.com.
  60. ^ "Formatted Text Inputs of UI Controls, Text Webix Docs". docs.webix.com.
  61. ^ "Dojox/Grid - DojoCampus - Docs". Archived from the original on 23 April 2009. Retrieved 23 April 2009.
  62. ^ "jqGrid] ShieldUI jQuery Grid".
  63. ^ "jQuery Grid, JavaScript Grid, jqxGrid, DataGrid, jQuery DataGrid". jqwidgets.com. Retrieved 17 December 2015.
  64. ^ "JxLib Library". Archived from the original on 18 February 2009. Retrieved 18 November 2008. or "sortable table plugin". phatfusion. Archived from the original on 22 April 2009. or "DrasticGrid". Archived from the original on 15 April 2017. Retrieved 22 May 2009.
  65. ^ "JavaScript Table (Grid) Widget – Webix HTML DataTable". webix.com.
  66. ^ "Dijit/Tree - DojoCampus - Docs". Archived from the original on 9 May 2009. Retrieved 23 April 2009.
  67. ^ "Enyo JavaScript Framework - Example - DiscoverSDK Code Examples".
  68. ^ "Sencha - Ext JS 7.3.0 Examples". sencha.com. Archived from the original on 12 May 2014. Retrieved 5 August 2012.
  69. ^ "treeview". Archived from the original on 9 October 2008., "file_tree_viewer". Archived from the original on 18 July 2008.
  70. ^ "jQuery Tree". jqwidgets.com. Retrieved 17 December 2015.
  71. ^ "mootree". sites.google.com. Archived from the original on 11 September 2016. Retrieved 18 November 2008.
  72. ^ "Demo browser". Archived from the original on 2 April 2016. Retrieved 3 October 2008.
  73. ^ "Tree Table or TreeGrid - Webix HTML5 library with jQuery integration". webix.com.
  74. ^ "Dijit/Editor - DojoCampus - Docs". Archived from the original on 16 April 2009. Retrieved 23 April 2009.
  75. ^ "HTML Editor". sencha.com.
  76. ^ markitup, jwysiwyg, htmlbox Archived 7 July 2009 at the Wayback Machine, WYMeditor Archived 3 June 2008 at the Wayback Machine
  77. ^ a b "jQuery Editor". jqwidgets.com. Retrieved 17 December 2015.
  78. ^ "MooEditable". cheeaun.github.com. Archived from the original on 1 March 2013. Retrieved 19 September 2017.
  79. ^ "RichText - The RichText control documentation: overview and initialization. Webix Docs". docs.webix.com.
  80. ^ "Dijit/Form/ComboBox - DojoCampus - Docs". Archived from the original on 18 April 2009. Retrieved 23 April 2009.
  81. ^ js.foundation, JS Foundation -. "Autocomplete - jQuery UI". jqueryui.com.
  82. ^ "jQuery Input, jQuery Auto Complete". jqwidgets.com. Retrieved 17 December 2015.
  83. ^ "AutoCompleter » digitarald:Harald Kirschner". digitarald.de. Archived from the original on 23 October 2017. Retrieved 25 April 2008.
  84. ^ 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");
  85. ^ MooTools Elements Archived 5 September 2008 at the Wayback Machine
  86. ^ UAB, Dinamenta. "JavaScript UI Library, Ajax Components & HTML5 Framework - Online Skin Builder". dhtmlx.com.
  87. ^ "Blog". 26 February 2015.
  88. ^ "Skinning GWT controls with style sheets". Archived from the original on 12 September 2008. Retrieved 17 March 2015.
  89. ^ js.foundation, JS Foundation -. "ThemeRoller - jQuery UI". jqueryui.com.
  90. ^ "Best JavaScript Frameworks". 16 September 2019.
  91. ^ "jQuery Window". jqwidgets.com. Retrieved 17 December 2015.
  92. ^ a b Using MochaUI Library or JxLib Archived 18 February 2009 at the Library of Congress Web Archives
  93. ^ a b "A Sip of WYSIWYG Development with ZK Studio". Archived from the original on 12 October 2008. Retrieved 27 April 2011.
  94. ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com.
  95. ^ "jQuery Docking Layout". jqwidgets.com. Retrieved 17 December 2015.
  96. ^ "jQuery Splitter". jqwidgets.com. Retrieved 17 December 2015.
  97. ^ "JavaScript layout library Webix for Web Apps Developers". webix.com.
  98. ^ dojo.gfx Archived 9 March 2009 at the Wayback Machine
  99. ^ "jCanvas". jCanvas.
  100. ^ a b "jQuery Draw Plugin". jqwidgets.com. Retrieved 17 December 2015.
  101. ^ "Mocha UI – MooTools Canvas UI class - Ajaxian". ajaxian.com. 17 November 2015.
  102. ^ a b "ZK - Leading Enterprise Ajax Solutions".
  103. ^ "Dojo's new Mobile App Project". 13 June 2010.
  104. ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com.
  105. ^ "jQT". jQT.
  106. ^ "jQWidgets Mobile Demos". jqwidgets.com. Retrieved 17 December 2015.
  107. ^ "cpojer/mootools-mobile". GitHub. 10 October 2021.
  108. ^ "ZK - Leading Enterprise Java Web Framework". ZK - Java Web Framework.
  109. ^ [1] Webix mobile/tablet support
  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 "Quickstart/WritingWidgets/A11y - DojoCampus - Docs". Archived from the original on 6 April 2009. Retrieved 23 April 2009.
  112. ^ "Built-in Accessibility in GWT 1.5 Applications".
  113. ^ a b c "jQWidgets Accessibility Overview". jqwidgets.com. Retrieved 17 December 2015.
  114. ^ Qooxdoo's "Extreme JavaScript" paradigm Archived 12 October 2008 at the Wayback Machine
  115. ^ "Accessibility of Guides, Designing User Interface Webix Docs". docs.webix.com.
  116. ^ js.foundation, JS Foundation -. "About jQuery UI - jQuery UI". jqueryui.com.
  117. ^ "Accessibility of Guides, Designing User Interface Webix Docs". docs.webix.com.
  118. ^ Wavemaker
  119. ^ Aptana Studio
  120. ^ "HP webOS Developer Blog". Archived from the original on 9 July 2012. Retrieved 5 August 2012.
  121. ^ "Sencha Architect". 25 March 2015.
  122. ^ "Blog". 26 February 2015.
  123. ^ "Sencha Ext JS". 5 November 2020.
  124. ^ [email protected], lloyd.dunn @ sun.com. "Using jQuery to Enhance the Appearance and Usability of a Web Page - NetBeans Tutorial". netbeans.org. Archived from the original on 12 July 2017. Retrieved 9 February 2010.
  125. ^ js.foundation, JS Foundation -. "jQuery API Documentation". api.jquery.com.
  126. ^ "Theme Builder for jQWidgets". jqwidgets.com. Retrieved 17 December 2015.
  127. ^ "ßeta - jQWidgets Charts Studio". jqwidgets.com. Retrieved 17 December 2015.
  128. ^ "JSEditor". jqwidgets.com. Retrieved 17 December 2015.
  129. ^ "MooTools-core Documentation". Archived from the original on 2 October 2009. Retrieved 14 October 2009.
  130. ^ "MooTools-more Document". Archived from the original on 4 October 2009. Retrieved 14 October 2009.
  131. ^ Custom build, JS Linker, API generation, Unit test framework, etc. Archived 25 July 2008 at the Wayback Machine
  132. ^ "Webix Skin Builder". webix.com.
  133. ^ "Formbuilder". webix.com.
  134. ^ 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.
  135. ^ o.DojoToolkit.Org/offline Archived 10 February 2010 at the Wayback Machine says "Dojo Offline is no longer supported after Dojo 1.3"
  136. ^ "Ext JS 7.3.0 - Sencha Docs". docs.sencha.com.
  137. ^ "googlearchive/gwt-google-apis". GitHub. 24 April 2021.
  138. ^ "jQuery HTML5 Storage plugin - daveschindler". sites.google.com. Archived from the original on 4 March 2017. Retrieved 15 October 2012.
  139. ^ "This example shows how to Save/Load the Grid's state". jqwidgets.com. Retrieved 17 December 2015.
  140. ^ 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
  141. ^ "Dojox/GFX - DojoCampus - Docs". Archived from the original on 9 March 2009. Retrieved 23 April 2009.
  142. ^ jQuery SVG plugin
  143. ^ "kamicane/art". GitHub. 26 February 2021.
  144. ^ "Chart Integration - Third-party charts integration guide. Webix Docs". docs.webix.com.
  145. ^ Some JavaScript libraries include widgets for Charts, Gauges, and other data visualizations.
  146. ^ "Dojox/Charting - DojoCampus - Docs". Archived from the original on 3 March 2009. Retrieved 23 April 2009.
  147. ^ Chart API[permanent dead link]
  148. ^ "Flot: Attractive JavaScript plotting for jQuery". flotcharts.org.
  149. ^ jQuery Visualize Plugin Archived 9 July 2009 at the Wayback Machine
  150. ^ "jqxChart - javascript chart widget powered by jQuery, HTML5, SVG". jqwidgets.com. Retrieved 17 December 2015.
  151. ^ "jQuery Gauge". jqwidgets.com. Retrieved 17 December 2015.
  152. ^ "ZK Live Demo - Other Charts". Live Demo - ZK Web Application Framework.
  153. ^ "JavaScript Charts UI Widget - Webix JS Charts". webix.com.
  154. ^ a b c d "Releasenotes/1.4 - DojoCampus - Docs". Archived from the original on 8 February 2010. Retrieved 17 December 2009.
  155. ^ a b c d "Supported Platforms | Enyo JS". Archived from the original on 23 July 2012. Retrieved 26 July 2012.
  156. ^ "Sencha Ext JS". 5 November 2020.
  157. ^ a b c d e js.foundation, JS Foundation -. "Browser Support - jQuery". docs.jquery.com.
  158. ^ a b c d e "jQuery UI Widgets - Help Documentation". jqwidgets.com. Retrieved 17 December 2015.
  159. ^ "OpenUI5SDK - Demo Kit". openui5.hana.ondemand.com. Retrieved 22 March 2021.
  160. ^ a b c d e "Compatibility Webix Docs". docs.webix.com.