since highcharts boost module forced line width = 1px limitation, I want to use boost-canvas as default with disable WebGL.
I found some discussions:
I have tried window.WebGLRenderingContext = undefined
, but give me an error:
TypeError: h.eachAsync is not a function
renderCanvas boost.src.js:2953
a boost.src.js:3374
b highcharts.src.js:2582
renderSeries highcharts.src.js:30838
renderSeries highcharts.src.js:30833
render highcharts.src.js:30985
firstRender highcharts.src.js:31201
init highcharts.src.js:29470
e highcharts.src.js:1384
init highcharts.src.js:29390
getArgs highcharts.src.js:29377
f highcharts.src.js:29371
C stock.src.js:10157
Is there any tutorial to force boost-canvas as default for highcharts with better line width ?
Thanks to @ppotaczek, it works. But the tooltip give another error:
Uncaught TypeError: a is undefined
applyInactiveState highcharts.src.js:24615
applyInactiveState highcharts.src.js:24611
runPointActions highcharts.src.js:25805
onContainerMouseMove highcharts.src.js:25447
setDOMEvents highcharts.src.js:25958
setDOMEvents highcharts.src.js:26526
init highcharts.src.js:25279
init highcharts.src.js:26469
f highcharts.src.js:24604
f highcharts.src.js:26425
firstRender highcharts.src.js:31201
init highcharts.src.js:29470
e highcharts.src.js:1384
init highcharts.src.js:29390
getArgs highcharts.src.js:29377
f highcharts.src.js:29371
C stock.src.js:10157
Would you please help me with it?
There is a wrong reference to eachAsync
function in boost-canvas
module - probably bug in Highcharts. If you add the below plugin, which store a reference to the function in Highcharts namespace, the module will be working correctly.
(function(H) {
H.eachAsync = function(arr, fn, finalFunc, chunkSize, i, noTimeout) {
i = i || 0;
chunkSize = chunkSize || 30000;
var threshold = i + chunkSize,
proceed = true;
while (proceed && i < threshold && i < arr.length) {
proceed = fn(arr[i], i);
++i;
}
if (proceed) {
if (i < arr.length) {
if (noTimeout) {
H.eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout);
} else if (window.requestAnimationFrame) {
// If available, do requestAnimationFrame - shaves off a few ms
window.requestAnimationFrame(function() {
H.eachAsync(arr, fn, finalFunc, chunkSize, i);
});
} else {
setTimeout(function() {
H.eachAsync(arr, fn, finalFunc, chunkSize, i);
});
}
} else if (finalFunc) {
finalFunc();
}
}
};
})(Highcharts)
Live demo: http://jsfiddle.net/BlackLabel/qrsk4nep/
Docs: https://www.highcharts.com/docs/extending-highcharts/extending-highcharts