Javascript FAQ

Revision as of 01:21, 10 March 2013 by Andrew Nicols (talk | contribs) (Add some notes on why YUI is awesome)

Jump to: navigation, search

What is JavaScript?

JavaScript is a scripting language widely used for client-side web development. It is also known by a number of other names including ECMAScript, and JScript (these are all the same thing but exist due to issues over the licensing of these names).

If you have a spare 27 minutes and would like a quick background on JavaScript and it's origins, see this video from Douglas Crockford 'JSeverywhere: Douglas Crockford - JavaScript, The World's Most Misunderstood Language'.

Where do I find general information about JavaScript?

Online resources:


How is JavaScript used by Moodle?

Where do I find more information about JavaScript in Moodle?

What JavaScript library does Moodle use?

Yahoo! User Interface Library (YUI)

Moodle uses the Yahoo! User Interface Library (YUI).

Online resources:


How/Why was YUI chosen for Moodle?

The decision was made in this thread in the General Developer Forum.

Since this decision was made, it's continued use has been questioned several times. Some of the main reasons for it's use include:

  • good documentation;
  • an active developer community;
  • code modularity;
  • a powerful loader system separating loading from execution and adding dependency resolution; and
  • sandboxing of code as standard.

Most other major libraries do not offer many of these major features including the powerful loader and dependency system which are particularly useful in the modular environment of Moodle.

yui_module function in Moodle 2.0

See JavaScript Cache and YUI Modules and MDL-22920.

What other JavaScript libraries are around?


jQuery is another popular JavaScript library, used among others by Drupal, Joomla and WordPress.

Online resources:


Moodle Docs

What does AJAX mean?

AJAX means "Asynchronous JavaScript and XML". It is a group of interrelated web development techniques used to create interactive web applications or rich Internet applications. Although XML is included in the acronym, AJAX is not a single technology but a group of technologies. In reality with modern JS, this tends to be JSON which is much more lightweight and easy to produce in PHP than XML.

See AJAX (Wikipedia) for general information and AJAX for information on AJAX and Moodle.

See also Firebug > Debugging AJAX with Firebug.

See also