HTML5 is the next revision of the HTML specification. HTML is the protocol that dictates how browsers display content in webpages. HTML5 brings dozens of new features that allow for rich applications to be deployed natively in browsers. The ChemDoodle Web Components library attempts to take advantage of as many of these new features as possible to bring scientific applications into the future.

The ChemDoodle Web Components library currently makes significant use of the following HTML5 features. Only <canvas> and <canvas> text are required to use ChemDoodle Web Components. As of the time of this writing, the latest versions of all major browsers support both of those technologies. The rest of the technologies used allow for additional functionality that is described below. Most current browsers should support these features. To determine if this browser supports these features, please look to the right. A summary of browser support for ChemDoodle Web Components is provided on the Browser Compatibility page.

Canvas and Canvas Text

The <canvas> tag defines a space on the webpage where graphics can be drawn using Javascript and was originally introduced by Apple as an aid to create Dashboard widgets. The technology became popular and was later incorporated into the HTML5 specification. Using the <canvas> tag, programmers can quickly draw dynamic graphics in webpages without having to resort to third party plugins such as Java applets or Flash.

Text was originally not supported for the <canvas> tag. It was later incorporated into the HTML5 specification as requests for its need were made. Now that text can be drawn easily, any 2D graphics that one can imagine can be produced in web browsers.

All canvases in the ChemDoodle Web Components library are based on the <canvas> tag. The <canvas> tag and text rendering for the <canvas> tag are fully supported in the latest versions of all major browsers.

Further reading:


The ability to draw 2D graphics on a webpage through Javascript was an incredible addition to every web developer’s tool-belt. Even better, the HTML5 specification also defines a new technology called WebGL, which allows for hardware accelerated OpenGL graphics to be rendered directly in web browsers without plugins. This specification is being maintained by the Khronos Group and is being lead by Vladimir Vukićević of Mozilla.

Previously, 3D graphics were only accessible in the browser with the use of cumbersome plugins, mostly Java applets and operating system specific plugins. Anyone who worked with such technologies knows how much of a hassle they are. WebGL, on the other hand, is very easy to use. WebGL works through <canvas> tags, and quickly allows developers to render 3D scenes through Javascript.

All 3D canvases in the ChemDoodle Web Components library are based on WebGL. WebGL became a production technology in the beginning of 2011, and is fully supported in Google Chrome, Mozilla Firefox, Apple Safari and Opera. Microsoft Internet Explorer supports WebGL starting with version 11.

Further reading:

XMLHttpRequest Level 2

When web apps were first being developed, a developer would have some link define a function and then the page would reload to reflect that change. This was an incredibly unsuccessful way to captivate users. In the late 1990’s a new technology was introduced to solve this problem, coined AJAX (Asynchronous Javascript and XML). AJAX allowed web applications to update their state by contacting a server without having to reload the page. This technology was initially introduced by Microsoft as the XMLHTTP ActiveX control. The rest of the web browsers also implemented the technology as the XMLHttpRequest (XHR) specification.

Due to security issues, AJAX calls were restricted to the server that hosts the web application. Now that security has improved, an addition to the HTML5 specification, named XMLHttpRequest Level 2 (XHR2) was introduced. XHR2 allows AJAX calls to be made from one origin to a server hosted at a different origin, as long as that server has the requesting origin registered.

XHR2 is supported in current versions of all major browsers. The ChemDoodle Web Components library does not require XHR2 for use. That being said, ChemDoodle Web Components contains a very powerful package, ChemDoodle.iChemLabs. The ChemDoodle.iChemLabs package provides access to iChemLabs cloud services where the entire ChemDoodle desktop API is hosted. This way, you can write very powerful web applications instantaneously, while having full access to a powerful, thorough and well-tested chemistry API through Javascript. These calls are very fast, and our servers are powerful. XHR2 requires that our servers recognize your origins (domains). If you are an academic organization, we will provide free access to our server resources. Otherwise, our rates are very reasonable, please view our support options.