Compatibility
JavaScript Frameworks
Our products rely on external JavaScript frameworks to do DOM manipulation, animation and event handling. We try to keep the interface between our library and the javascript framework as small as possible, the adapter classes that serve as a bridge to the JavaScript frameworks are about 10 methods long.
We have built-in support for jQuery and we bundle adapter classes for use with Mootools and Prototype. The strategy we have chosen is to always test the latest versions (possibly with a small delay) and to also include the latest patch on earlier versions. Currently our test-framework runs unit tests for the following versions of javascript libraries:
| jQuery | 1.3.2 - 1.9.x. 2.0.x for modern browsers. |
|---|---|
| MooTools | 1.2.5 - 1.4.5 |
| Prototype | 1.7 |
Other versions may still work even though they are not tested.
Browser versions
We test our software on many browsers using the latest versions. Knowing that Internet Explorer users have a tendency not to upgrade we also systematically test older versions of that browser. Highcharts runs on the following browser versions:
| Brand | Versions supported |
|---|---|
| Internet Explorer | 6.0 + |
| Firefox | 2.0 + |
| Chrome | 1.0 + |
| Safari | 4.0 + |
| Opera | 9.0 + |
| iOS (Safari) | 3.0 + |
| Android Browser | 2.0 + *) |
As with the javascript frameworks, other versions may still work even though they are not tested.
Rendering engines and Performance
Different browsers support different rendering technologies, modern browsers have support for SVG but older versions of Internet Explorer do not, here we use VML to draw the graphs. This table describes the technologies we use in various browsers:
| Browser version | Rendering technology | Rendering performance |
|---|---|---|
| Internet Explorer 9 | SVG | Excellent |
| Internet Explorer 8 | VML | Ok |
| Internet Explorer 7 | VML | Slow |
| Internet Explorer 6 | VML | Slow |
| Firefox | SVG | Excellent |
| Chrome | SVG | Excellent |
| Safari | SVG | Excellent |
| Opera | SVG | Excellent |
| iOS Safari | SVG | Ok |
| Android 3+ | SVG | Ok |
| Android 2.x | Canvas | Slow |
Android 2.x
Android 2.x doesn't have SVG support built in, so we have created a separate renderer based on the canvg library for this system. This solution has some limitations:
- Using Highstock on Android 2.x is not recommended as it relies heavily on zooming and mouse interaction
- Shared tooltip is always enabled.
- During first render, the canvg renderer + rgbcolor.js + canvg.js (concatenated to one file) will be downloaded from code.highcharts.com
This is configurable with the
global.canvasToolsURLoption. - Chart and series animation is turned off.
- Show/hide series from the legend is not enabled.
- Series and point touch events are not enabled.
- Zooming is not enabled.
- Using the Renderer API directly to add shapes to the charts is not supported.
