JavaScript APIs
As stated earlier, when HTML was created, it was not meant to be used for the development of large enterprise applications. When JavaScript was first created back in 1995, its main goal was to provide a simple scripting language that would allow web designers to add some logic to their web pages. This too was not meant to be a foundation tool from which large, complex applications would be developed.
However, as we have seen with HTML itself, as well as CSS, JavaScript has become very widely used, and developers have outgrown its limited capabilities. Seeing the direction in which developers were taking the language, in an attempt to leverage the Web as a platform, browser vendors started to make improvements to JavaScript as much as was in their power. As a result, very powerful JavaScript engines have emerged. So, as JavaScript become even more used, and as browser became even more powerful, a new set of additions has been added to JavaScript.
Today JavaScript is the most popular scripting language used on the Web. Given its capabilities and the latest tooling available for it, JavaScript has become a very good option for the development of large applications, especially for games. The latest JavaScript APIs allow for 2D and 3D graphics rendering, thread-like behavior, sockets, embedded databases, and a whole lot more. Best of all, this new functionality is built with security in mind, and is not only available on desktop computers, but can also be used in most devices connected to the World Wide Web.
New JavaScript APIs
While the following is not a comprehensive list of all the new and upcoming APIs and language features, it does cover the most significant, stable additions to JavaScript, especially ones that we can leverage for game development. A more detailed explanation of each of the APIs listed in the following list, as well as usage examples, are available in subsequent chapters:
API |
Definition |
---|---|
Canvas API |
It renders 2D or 3D graphics |
Web Audio API |
It controls playback of audio files |
Web Video API |
It controls playback of video files |
Geolocation API |
It provides access to geographical location of hosting device |
Web Socket API |
It provides a protocol for two way communication with a remote server |
Web Workers API |
It provides a thread-like, background worker for concurrent execution |
Messaging API |
It provides mechanism for communication between different browser contexts |
Web Storage API |
It provides a key-value pair persistence mechanism |
Indexed Database API |
It provides a NoSQL object storage mechanism |
Drag and Drop API |
It provides a native mechanism for dragging and dropping objects |
Selector API |
It provides a mechanism to select DOM elements using CSS selectors |
Note
There was another persistence API in HTML5 that was known as WebSQL. The spec for this API defined an asynchronous way to store and query data in the client using an actual built-in SQL-based database engine. The specification has been deprecated, and was replaced in its entirety by the more robust and more accepted IndexedDB API.