Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Javascript FAQ: Difference between revisions

From MoodleDocs
mNo edit summary
No edit summary
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== What is JavaScript? ==
== 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).
JavaScript is a scripting language widely used for client-side web development. It is also known as ECMAScript and has been progressively improved over the years.


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 '[http://www.youtube.com/watch?v=gz7KL7ZirZc JSeverywhere: Douglas Crockford - JavaScript, The World's Most Misunderstood Language]'.
Since Moodle 3.8 we recommend the use of Native JavaScript rather than through a library such as jQuery or YUI, and require that all new JavaScript be written in the style of ES 2015 modules. These should be placed in the amd/src directory of a component and are transpiled at development time to be compatable with a wide range of browsers.


== Where do I find general information about JavaScript? ==
== Where do I find general information about JavaScript? ==
Line 9: Line 9:
=== Online resources: ===
=== Online resources: ===
* [http://en.wikipedia.org/wiki/JavaScript JavaScript (Wikipedia)]
* [http://en.wikipedia.org/wiki/JavaScript JavaScript (Wikipedia)]
* [http://articles.sitepoint.com/category/javascript Sitepoint JavaScript tutorials]
* [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide Mozilla JavaScript guide]


=== Books: ===
=== Books: ===
Line 30: Line 30:
As of Moodle 3.8, the user of [[jQuery]] is generally discouraged and the use of Native or Vanilla Javascript is recommended.
As of Moodle 3.8, the user of [[jQuery]] is generally discouraged and the use of Native or Vanilla Javascript is recommended.


=== Yahoo! User Interface Library (YUI) ===  
=== Yahoo! User Interface Library (YUI) ===
Until Moodle 2.9, the Yahoo! User Interface Library (YUI) was the preferred javascript library. From Moodle 2.9 onwards, jQuery is the preferred javascript library.  
{{Deprecated|version=2.9}}
As of Moodle 2.9, the user of YUI is generally discouraged.


==== Online resources: ====
==== Online resources: ====
Line 41: Line 42:
* [http://shop.oreilly.com/product/0636920013303.do YUI 3 Cookbook] by Evan Goer
* [http://shop.oreilly.com/product/0636920013303.do YUI 3 Cookbook] by Evan Goer
* [http://shop.oreilly.com/product/0636920025245.do Maintainable JavaScript] by Nicholas C. Zakas
* [http://shop.oreilly.com/product/0636920025245.do Maintainable JavaScript] by Nicholas C. Zakas
 
 
==== Why are we moving away from YUI ? ====
==== Why are we moving away from YUI ? ====
The decision to begin the transition from YUI to JQuery was made here:
The decision to begin the transition from YUI to JQuery was made here:
Line 49: Line 50:
This is in response to Yahoos announcement that they will be ceasing all further development on YUI (although it is still maintained).  
This is in response to Yahoos announcement that they will be ceasing all further development on YUI (although it is still maintained).  
http://yahooeng.tumblr.com/post/96098168666/important-announcement-regarding-yui
http://yahooeng.tumblr.com/post/96098168666/important-announcement-regarding-yui
== 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 [http://en.wikipedia.org/wiki/Ajax_(programming) AJAX (Wikipedia)] for general information and [[AJAX]] for information on AJAX and Moodle.
See also [[Firebug#Debugging AJAX_with_Firebug|Firebug > Debugging AJAX with Firebug]].


== See also ==
== See also ==


* [[jQuery]]
* [[jQuery]]
* [[Javascript and YUI 3 FAQ]]


[[Category:FAQ]]
[[Category:FAQ]]
[[Category:Javascript]]
[[Category:Javascript]]
[[Category:AJAX]]
[[Category:AJAX]]

Revision as of 03:10, 14 April 2021

What is JavaScript?

JavaScript is a scripting language widely used for client-side web development. It is also known as ECMAScript and has been progressively improved over the years.

Since Moodle 3.8 we recommend the use of Native JavaScript rather than through a library such as jQuery or YUI, and require that all new JavaScript be written in the style of ES 2015 modules. These should be placed in the amd/src directory of a component and are transpiled at development time to be compatable with a wide range of browsers.

Where do I find general information about JavaScript?

Online resources:

Books:

How is JavaScript used by Moodle?

Where do I find more information about JavaScript in Moodle?

What JavaScript library does Moodle use?

JQuery

This feature has been marked as deprecated since Moodle 3.8

As of Moodle 3.8, the user of jQuery is generally discouraged and the use of Native or Vanilla Javascript is recommended.

Yahoo! User Interface Library (YUI)

This feature has been marked as deprecated since Moodle 2.9

As of Moodle 2.9, the user of YUI is generally discouraged.

Online resources:

Books:

Why are we moving away from YUI ?

The decision to begin the transition from YUI to JQuery was made here:

https://tracker.moodle.org/browse/MDL-47036

This is in response to Yahoos announcement that they will be ceasing all further development on YUI (although it is still maintained). http://yahooeng.tumblr.com/post/96098168666/important-announcement-regarding-yui

See also