Four popular AJAX framework jQuery, Mootools, Dojo, ExtJS contrast

AJAX is the cornerstone of web2.0, and now several popular open source AJAX Web framework, such as: jQuery, Mootools, Dojo, Ext JS and so on, then we in the end under what circumstances the use of that framework? The following is a excerpt of the data:

Ajaxian Ajax tools at the end of 2007, conducted a survey of some results is shown below (which number to use the tool to investigate the percentage of details, see the website): tools-usage-survey-results


















Prototype of which the highest rates, largely because it was the first mature framework, many previously used in the project, so it has been used

Let's take a look at selected based AJAX framework:

Your project needs (ie what features you need, for example, require the interface to make beautiful, special effects, or other functions)
A rating is supported browsers (IE, Firefox, etc.)?
Documentation Quality: is perfect (including tutorials, API, code samples, etc.)
How the scalability of the framework? As a framework to write plug-ins to be easy?
Do you like the style of its API?
Degree of unity to most of the JavaScript code in your style?
Frame size (too large to download the framework of lead time)
Framework is to force you to change the way to write HTML (Dojo is one such)?
Code execution speed: performance?
Whether the code modular (Mootools is a highly modular)? How to reuse code?

A, jQuery

Simple idea: almost all operations are to select DOM elements (a strong Selector), and then to its operation (Chaining and other characteristics).

<br /> Advantages of small, compressed code only 20 k (no compression code 94k).
Selector and the convenience of DOM operations: jQuery's Selector's Element.Selectors.js compared with mootools, CSS Selector, XPath Selector (1.2 post deleted)
Chaining: always returns a jQuery object that can be continuous operation.
Document integrity, ease of use (each API has a complete example, which is now can not be compared to other frameworks), but there are many other online documents and books.
Wide range of applications, including the google code also uses jQuery.

The site uses jQuery:
The core development team and key personnel: John Resig and so on.
Concise and brief grammar, easy to remember.
Scalability: There are a large number of user-developed plug-ins available ( )
jQuery UI ( , based on jQuery, but the core of jQuery and independent), and constantly developing.
Friendly and active community: Google groups:
There are many convenient event handling methods, such as click, rather than a single addEvent and the like.

<br /> The design shortcomings of the pursuit of efficiency and simplicity, not object-oriented extensions. Different design ideas and Mootools.
CSS Selector slightly slower speed (but now has been a substantial increase in speed)

Second, Mootools

Object-oriented design.

Modular, each module is independent of the code, the minimum core is only 8k, the biggest advantage is that choose to use which module, when used with the modules can only import complete nor to 180k (no compression), compression is not to 70k.
Syntax is simple and intuitive.
Effects (Effects): This is slightly stronger than jQuery, now being developed Mootools UI (Ajax framework that should be the development of a trend).
Code written in beautiful, easy to read and modify.
The complete document (the document the latest 1.2beta more detailed than before.)
Active community: official website ( ), there is a IRC.
Performance: See:

Shortcomings <br /> modified some of the lower classes: such as Array, String, etc. This is also the different design ideas.
On the DOM and CSS Selector in jQuery as powerful.

Third, Dojo

Behind the strong support: IBM, Sun, BEA, etc. It is very important advantage.
Powerful features, Full Stack framework extends the DHTML capabilities such as:
Support and browser Back / Forward button integration.
Dojo Offline, offline storage of a cross-platform API.
Chart component, you can easily generate charts in the browser.
Based on SVG / VML vector graphics library.
Google Maps, Yahoo! Maps components, facilitate the development of Mashup applications.
Comet support, through the common Buyeux agreement.
Powerful UI (Dijit).
Object-oriented design, unified namespace, the package management system (The Package System and Custom Builds)

Defects complex, steep learning curve.
Incomplete documentation of the extreme, this is a big problem.
API lot of instability, the larger the changes between versions, is not yet a mature framework.
Too intrusive, extensive use of dojo page properties, such as <button dojoType="dijit.form.Button">, if in the future to upgrade or switch to a framework dojo, the burden will be great.
Performance problems, due to adopt a synchronous dojo loading mechanism will temporarily lock the browser, causing 100% CPU utilization. In addition, many Widget is very slow.

Fourth, Ext JS

<br /> Component of design to promote the RIA (Rich Internet Application) application.

<br /> Powerful advantages of UI, and good performance, which is its greatest strengths.
Speed control is the UI or other modules.
100% object-oriented and component-oriented thinking, the same syntax, the global namespace.
Document complete, standardized and convenient.
The core development team, Jack Slocum and so on.
Active community, the rapidly increasing volume of users.
Modular implementation, scalability.
All the components (widgets) can be used directly, without having to set (of course, the user can select the re-configuration).

A little complicated.
Framework for the heavyweight (including a large number of UI), bulky. If the import ext-all.js, compression after nearly 500k.

Note: EXT commercial use: If you just extjs included in their projects, and this project is not sold to the secondary development of the toolbox the user to do, or the component library to LGPL agreement to abide by free; or to pay .

Summary <br /> lightweight choice of lightweight choice: mainly mootools and jquery, because of their different design, jQuery is the pursuit of simplicity and efficiency, Mootools addition to the pursuit of these objectives other than its core is object oriented, Therefore, for rapid development of jQuery, Mootools for a little large and complex projects, which need the support of object-oriented; In addition, support for the Ajax, jQuery slightly stronger; in support of the Comet, jQuery plug-ins are related, Mootools does not have, but the core is the Comet server support, browser interface is very simple, related to the development of plug-in is simple.

In the object-oriented Javascript Library, mootools gradually over the prototype (size large, object-oriented design is unreasonable, etc.), including script.acul.ous (based on prototype, in fact, the UI prototype library).

Framework for RIA

Consider the pure JavaScripty library, the key is Dojo and ExtJS (still YUI). Dojo is more suitable for enterprise applications and product development needs, as offline storage, DataGrid, 2D, 3D graphics, Chart, Comet and other components for enterprise applications, it is very important (of course, these components have to wait some time before stabilized). For example, BEA Mashup technology-based products developed have been used in the Dojo.

ExtJS: beautiful and "easy", and strong enough. In the UI needs a relatively large, is preferred.

posted @ 2009-01-16 Yu Qi

分类:Web 时间:2010-10-29 人气:244
blog comments powered by Disqus


  • To PHP to efficiency - speed up your code execution speed 2011-01-14

    Efficiency is low scripting language, PHP is no exception. The efficiency is in fact, are in every line of code in your savings or wasted. So, here you explain to the efficiency of some basic common sense, make your code execution speed up. (Note: N

  • Statistics PHP code execution time 2010-05-31

    Statistics PHP code execution time of simple methods: class TimeMark { private $last; private $n; public function start() { $this->last = microtime(true); $this->n = 1; } public function mark($name) { $now = microtime(true); $name = str_replace(' ',

  • JavaScript and PHP to implement a form submit button way more than the source code 2010-10-29

    JavaScript and PHP to implement a form submit button way more than the source code Today, when doing the background to deal with a form, the form with two submit buttons, to achieve a different submit button when clicked, respectively, for two differ

  • flash.utils package with a variety of package-level functions for timing code execution. retrieve information about classes and objects and convert escaped characters 2010-11-22

    flash.utils package with a variety of package-level functions for timing code execution, retrieving information about classes and objects, and converting escape characters. Public Methods Function Defined clearInterval (id: uint): void Cancels a spec

  • In the pe file, add code execution 2011-04-20

    PE file to add the code necessary steps: (1) add the code into the target PE file, the code can either insert the original code section in which the gap (because each section is stored in a file in accordance with FileAlignMenu value-aligned, so the

  • jQuery + Ajax + Struts2. js javascript 2010-04-08

    (1) jQuery's basic usage: WEB2.0 and ideas with ajax the rapid development of Internet communication, one after another there are some excellent Js framework, some of the more famous are Prototype, YUI, jQuery, mootools, Bindows and domestic JSVM fra

  • How to use Rational Performance Tester to record test scripts based on Web2.0 websites 2010-03-16

    About RPT RPT basic functions Rational ® Performance Tester (hereinafter referred to as RPT) is the IBM performance testing based on the Eclipse platform solution for testing the performance tests provide a complete set of functions, including record

  • Mobile Web2.0: Ajax in the areas of mobile development 2010-11-19

    Transfer from First, the concerns: This article describes some of the views expressed in my former, while also adding some new text view. This article focuses on mobile development in Ajax's inf

  • Actual performance tuning Web2.0 websites 2010-05-11

    Web2.0 website performance optimization can be divided into Web layer optimization and application layer optimization. General browser and Web server will return the top layer shall be web tier, application server middle tier, the database is the bot

  • JavaScript中document.forms[0]与getElementByName区别 2014-03-26

    在很多情况下JavaScript中document.forms[0]与getElementByName这两种用法没有区别,这片文章详细的解释了两者的区别和用法,有兴趣的朋友可以参考一下. 首先我们来看个示例: <form name="buyerForm" method="post" action="/mysport/control/user/"> <input type="checkbox" i

iOS 开发

Android 开发

Python 开发



PHP 开发

Ruby 开发






Javascript 开发

.NET 开发



Copyright (C), All Rights Reserved. 版权所有 黔ICP备15002463号-1

processed in 0.626 (s). 10 q(s)